Некоторое время назад я написал некоторые функции на C # для личного использования. Я надеюсь, что это хорошо для вас
публичная длинная тмп;
public long [] tabnum = new long [1];
public void priminum (длинный NUM)
{
долгий ресто;
длинный рисо;
// 2 is only number pair prime
tabnum[0] = 2;
for (tmp = 3; tmp <= NUM; tmp++)
{
if ((tmp % 2) == 0) continue;// if num it's pair is not prime
for (long Y = 0; Y < tmp; Y++)
{
riso = Math.DivRem(tabnum[Y], tmp, out Resto);
if (Resto == 0) break;
if(riso <= tabnum[Y])
{
Array.Resize(ref tabnum, tabnum.Length + 1);
tabnum[tabnum.Length - 1] = tmp;
List1.Items.Add(tmp.ToString("###,###"));
break;
}
}
}
}
следующая функция возвращает true, если число простое
private bool IsPrimo (ulong tmpNum)
{
ulong Y;
if (tmpNum == 2) return true;
if ((tmpNum % 2) == 0) return false;
for (Y = 2; Y <= tmpNum; Y++)
{
if ((tmpNum % Y) == 0) break;
if ((tmpNum / Y) <= Y) return true;
}
return false;
}