为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C C++
慕仰7464091 2018-01-11 20:56:48
#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;}
查看完整描述

2 回答

?
冯宝宝

TA贡献31条经验 获得超8个赞

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

查看完整回答
反对 回复 2018-01-12
?
冯宝宝

TA贡献31条经验 获得超8个赞

运算超时可能是你算法问题,就是你解决问题的思路可能需要换下。

查看完整回答
反对 回复 2018-01-12
  • 2 回答
  • 0 关注
  • 1910 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信