孪生素数
之间隔为2的相邻素数,它们之间的距离已经近得不能再近了,就像孪生兄弟一样,也称为双生素数。
- 中国剩余定理
有个孪生素数的公式
,
在此就不介绍了。
感兴趣的请自行某度。
AC:
#include <stdio.h>
#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;
}