|
5啊哈币
/*代码如下:*/
#include <stdio.h>
int hw(int m)
{
int y,s=0;
y=m;
while(y)
{
s=s*10+y%10;
y=y/10;
}
if(s==m)
return 1;
else
return 0;
}
int main()
{
int a,b,c,d=1,n=0;
for(a=2;a<1000000;a++)
{
c=a/2;
for(b=2;b<=c;b++)
if(a%b==0)
{d=0;break;}
if(d)
{
if(hw(a))
{
printf("%d ",a);
n++;
}
}
d=1;
}
printf("\n%d\nEnd",n); /*这一句总是输出不出来。如果将1000000改小的话,程序一切正常。*/
sleep(5000);
return 0;
}
/*是为了求出1~1000000中有多少个回文质数。*/
|
最佳答案
查看完整内容
一个是除一个是开方,能一样?百万内除法没问题的……真正原因是1000000*500000循环缓冲区溢出,开方减少了几个数量级
|