Я пишу программу на C#, которая находит все простые числа до максимального размера UInt64, если только числовой тип данных не превышает UInt64. Я уже написал простую программу, но по какой-то причине она возвращает каждое проверяемое мной число как простое, даже если оно не должно быть простым числом. Вот что у меня есть:
Код: Выделить всё
static void Main(string[] args)
{
UInt64 count = 0;
List primes = new List();
bool prime = true;
do
{
for (UInt64 i = 2; i < count; i++)
{
if ((count % i) == 0)
{
prime = false;
}
}
if (prime == true)
{
primes.Add(count);
Console.WriteLine(count);
}
count++;
prime = true;
} while (count < UInt64.MaxValue);
}
Что-то не так с моим алгоритмом? Потому что каждый раз, когда я проверяю простое число, он считает, что каждое число является простым, и распечатывает его.
Подробнее здесь:
https://stackoverflow.com/questions/204 ... me-numbers