>>15
Very inefficient way to do it in most cases.
#include <math.h>
const size_t NumPrimes = 1000000;
int main(void)
{
size_t i, j;
__int64 cur, number;
__int64 *primes = (__int64 *) 0;
if (primes = new __int64[NumPrimes]) {
for (i = 0; i < NumPrimes; i++) {
primes
[i] = 0;
}
for (primes[i = 0] = 2, number = 3; i < NumPrimes-1; number++) {
__int64 max = (__int64) (ceil(sqrt((long double) number)));
for (j = 0; cur = primes[j]; j++) {
if (number % cur == 0) {
break;
} else if (cur >= max) {
primes[++i] = number;
break;
} else {
continue;
}
}
}
delete[] primes;
primes = (__int64 *) 0;
}
return 0;
}
There you have many primes. You can increase NumPrimes to any number you like, but you 'might' need more RAM. :)