給你一個n,輸出第n個質數
// Comment #include <stdio.h> #include <stdint.h> #define n 10000 uint64_t primes[n]; int main(void){ int primesSize = 2; primes[0] = 2; primes[1] = 3; // notice n must >= 2 for(uint64_t j = 4; j < UINTMAX_MAX; ++j){ if(primesSize >= n) break; for(int k = 0; k < primesSize; ++k){ if(j % primes[k] == 0) break; else if(primes[k]*primes[k] > j){ primes[primesSize] = j; primesSize++; break; } } } printf("%lu\n", primes[n-1]); return 0; }也可以使用6n+-1法 簡易版是在第一層for迴圈加入 if(j%2==0||j%3==0)continue;