编译运行后没有任何输出
下面是我的理解,供参考:
有两个地方,一是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;
}
第17行条件里少了一个等于号,一个等号是赋值的意思,代表条件一直是false,所有不会打印数据