寻找孪生素数
分数 10
作者 周强
单位 青岛大学
数学家希尔伯特在1900年国际数学家大会的报告上提出一个“孪生素数猜想”,即:
存在无穷多个素数p,使得p + 2是素数。p和p+2这一对差为2的素数,被称为“孪生素数”。
看起来,这个猜想是成立的,我们总能找到很多对孪生素数,例如:3和5, 5和7, 11和13…… 这一猜想至今还未被证明。
下面这段程序对于输入的整数n
(n<100000),寻找大于n的最小的一对孪生素数p
和q
(q=p+2,而且你应当相信,在整型变量的取值范围内一定可以找到这对p
和q
)。
参考答案
#include<stdio.h>
int isPrime(int num){
for(int i=2; i<=num/2; i++)
if( num%i==0 ) return 0;
return 1;
}
int main(){
int n;
for(int i=0; i<6; i++) { // 总共寻找6次
scanf("%d",&n); //输入一个整数n
if( n<3) printf("3 5\n");
else{
for(n++; !(isPrime(n)&&isPrime(n+2)); n++); //注意看清楚,此行代码中所要填的空之后带有分号
printf("%d %d\n",n, n+2);
}
}
return 0;
}