このアプリケーションは、番号「n」を受け取ります。この数を受け取った後、プログラムは素数のリストの n 番目の素数を表示する必要があります。たとえば、ユーザーが「3」と入力すると、5 は 2 から始まる 3 番目の素数であるため、プログラムは「5」を表示するはずです。コードに問題があることはわかっていますが、どこに問題があるのか わかりません。どうすれば修正できますか。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Determinar el n-esimo primo.");
long n = Convert.ToInt64(Console.ReadLine()); // N lugar de primos
long[] array = new long[n];
long c=0;
while (c >= 2)
{
if(siprimo(c++) == true)
for (long i = 0; i < n; i++)
{
array[i] = c;
}
}
Console.WriteLine(array[n - 1]);
Console.ReadLine();
}
static private bool siprimo(long x)
{
bool sp = true;
for (long k = 2; k <= x / 2; k++)
if (x % k == 0)
sp = false;
return sp;
}
}
}