求高手,c++ 哪错了!!!!!!

原问题:求高手,c++ 哪错了!!!!!!
分类:编程开发 > 最后更新时间:【2017-07-29 00:31:22】
问题补充:

#include <iostream>

#include <cstdio>

#include <cmath>

using namespace std;

int main (){

//freopen("1019.in","r",stdin);

int m,n,x,y,k,ct;

bool ans;

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

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

x=i;

y=0;

while(x>0){

y=y*10+x%10;

x/=10;

}

if(y!=i)

continue;

ans=true;

k=(int)(sqrt(i*1.0));

for(int j=1;j<=k;j++){

if(i%j==0){

ans=false;

break;

}

if(!ans)

continue;

ct++;

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

}

}

cout<<ct<<endl;

return 0;

}

回文素数

补充:一行二个整数m,n。(100≤m,n≤1000000)。输入补充:多行,每行一个数(按字典序由小到大输出),最后一行为数的个数。输出

最佳答案

你程序至少有一个问题

k=(int)(sqrt(i*1.0));

for(int j=1;j<=k;j++){

的for循环中,j要从2开始的,否则任何数都是能被1整除的,你就判不到素数了

另外,一个建议,你既然用c++,且用了cout/cin.就没有必要用scanf和printf了


追问:
没有打错了是j=i
追问:
#include #include #include using namespace std;int main (){int m,n,x,y,k,i,j,ct=0;bool ans;cin>>m>>n;for(i=m;i0){y=y*10+x%10;x/=10;}if(y!=i) continue;ans=true;k=(int)(sqrt(i*1.0));for(j=i;j
追问:
cout
追问:
我改了一下 是对的吗
  • 追答:
    看不到完整的程序我简单地改了下,应该没有问题了
    最佳答案由网友  whoami1978  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    19

    分享到:

    其他回答

    暂无其它回答!

      推荐