C/C++|孪生素数——C语言实现

孪生素数 之间隔为2的相邻素数,它们之间的距离已经近得不能再近了,就像孪生兄弟一样,也称为双生素数。

  • 中国剩余定理
    有个孪生素数的公式
    在此就不介绍了。
    感兴趣的请自行某度。
【C/C++|孪生素数——C语言实现】AC:
#include #define maxn 10000 int main() { long i, j, c = 0; long twin = 2, t = 0; char prime[maxn + 1]; prime[0] = 0; prime[1] = 0; for (i = 2; i <= maxn; i++) prime[i] = 1; for (i = 2; i * i <= maxn; i++) { if (prime[i] == 1) { for (j = 2 * i; j <= maxn; j++) { if (!prime[j]) continue; if (j % i == 0) prime[j] = 0; } } } for (i = 2; i < maxn; i++) { if (prime[i] == 1) { c++; if (i - 2 == twin) { printf("(%d,%d) ", twin, i); t++; if (t % 5 == 0) printf("\n"); } twin = i; } } printf("\n共有%d个素数,%d对孪生素数! ", c, t); getchar(); return 0; }

    推荐阅读