Я начинаю на С#, я пытаюсь написать приложение, чтобы получить простые числа между двумя введенными пользователем числами. Проблема в том, что при больших количествах (действительные числа находятся в диапазоне от 1 до 1000000000) получение простых чисел занимает много времени, и в соответствии с проблемой, которую я решаю, вся операция должна выполняться за небольшой промежуток времени. Это проблема связи для более подробного объяснения: SPOJ-Prime
И вот часть моего кода, ответственного за получение простых чисел:
public void GetPrime()
{
int L1 = int.Parse(Limits[0]);
int L2 = int.Parse(Limits[1]);
if (L1 == 1)
{
L1++;
}
for (int i = L1; i <= L2; i++)
{
for (int k = L1; k <= L2; k++)
{
if (i == k)
{
continue;
}
else if (i % k == 0)
{
flag = false;
break;
}
else
{
flag = true;
}
}
if (flag)
{
Console.WriteLine(i);
}
}
}
Есть ли более быстрый алгоритм? Спасибо заранее.