代码如下,最后输出结果为101 907,想知道为何只输出了两个数,而且最后一个还是907大于九百呢?程序错在哪了呢???
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int n,i,k,a,b,c;
for(n=101;n<900;n++)
{
k=(int)sqrt(float(n));
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i==k+1)
{ a=n/100;
b=n/10%10;
c=n%10;
n=c*100+b*10+a;
k=(int)sqrt(float(n));
for(i=2;i<=k;i++)
if(n%i==0) break;
if(i==k+1)
printf("%d\n",n);
}
}
system("pause");
}
嗯确实,刚老师讲课时反应过来。我的循环逻辑没错,错在对n取逆序时,为了省事还用了变量n,换一变量表示再判断逆序是否为素数就好了!问题已解决,多谢!
老哥,你这答非所问啊!
老哥,你这答非所问啊!