编译运行后没有任何输出
看了半天不知道哪里有问题,还请网友指出
下面是我的理解,供参考:
有两个地方,一是if(k=0)改为if(k==0),因为是需要判断是否k为0,即是否为满足孪生素数对的条件。
二是把 修改后的if(k==0) printf("%ld,%ld\n",t,t+2); 移到内层的for循环后面,以免产生两次孪生素数对的输出。
修改后如下:
#include <stdio.h>
#include <math.h>
int main(void){
long int m,n,i,t,k;
printf("请输入两个数:");
scanf("%ld,%ld",&m,&n);
if(m%2==0){
m++;
}
for(t=m;t<=n;t+=2){
for(i=3,k=0;i<=sqrt(t);i+=2){
if(t%i==0){
k=1;
break;
}
if((t+2)%2==0){
k=1;
break;
}
}
if(k==0){
printf("%ld,%ld\n",t,t+2);
}
}
return 0;
}