Код: Выделить всё
ArrayList generatePrimes(int n)
Я действительно знаю, как написать эту функцию, но когда я это сделал прошлой ночью, это не было так приятно, как я надеялся. Вот что я придумал: < /p>
ArrayList generatePrimes(int toGenerate)
{
ArrayList primes = new ArrayList();
primes.Add(2);
primes.Add(3);
while (primes.Count < toGenerate)
{
int nextPrime = (int)(primes[primes.Count - 1]) + 2;
while (true)
{
bool isPrime = true;
foreach (int n in primes)
{
if (nextPrime % n == 0)
{
isPrime = false;
break;
}
}
if (isPrime)
{
break;
}
else
{
nextPrime += 2;
}
}
primes.Add(nextPrime);
}
return primes;
}
< /code>
Я не слишком обеспокоен скоростью, хотя я не хочу, чтобы это было явно неэффективным. Я не возражаю против того, какой метод используется (наивное или сито или что -нибудь еще), но я хочу, чтобы он был довольно коротким и очевидным, как он работает.
Подробнее здесь: https://stackoverflow.com/questions/104 ... me-numbers
Мобильная версия