计算两个数之间既是素数又是回文数的题目,但运算超时了?能看看着么解决么?

#include <stdio.h>

#include <math.h>

int f1(int n)

{

int i;

for(i=2;i<sqrt(n);i++)

{

if(n%i==0)break;

}

if(i>sqrt(n))

return 1;

return 0;

}

int f(int s,int i)

{

if(i==0)return 1;

int zanyong;

zanyong=s;

while(--i)

s*=zanyong;

return s;

}

int main(int argc, char *argv[])

{

int n,m,i,p,j,z;

scanf("%d%d",&n,&m);

for(i=n;i<m;i++)

{

if(f1(i)==1)

{

z=i;j=0;

while(z)

{

j++;

z/=10;

}

for(p=1;p<=(j+1)/2;p++)

{

if((i/f(10,p-1))%10!=(i/f(10,j-p))%10)

break;

}

if(p==(j+1)/2+1)

printf("%d\n",i);

}

}

return 0;

}


慕仰7464091
浏览 1915回答 2
2回答

冯宝宝

兄弟你能写点代码提示么,,,,比如输出,输入提示,不然就一个黑框框,我不知道是干什么,,

冯宝宝

运算超时可能是你算法问题,就是你解决问题的思路可能需要换下。
打开App,查看更多内容
随时随地看视频慕课网APP