weixin_51582046 2021-01-31 22:36 采纳率: 100%
浏览 14
已结题

求助!如何修改这段代码?

题目描述
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000,000)[a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。
输入输出样例
输入
5 500
输出
5
7
11
101
131
151
181
191
313
353
373
383
 

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int num=0,sq,x,flag=0;
    long long int a,b,i;
    cin>>a>>b;
    for(i=a;i<=b;i++){
    sq=sqrt(i);
    for(int j=2;j<=sq;j++){
        if(i%j==0){
            flag=1;
            break;
            }
    }
            while((!flag)&&i){
                num=num*10+x;
                x=i%10;
                i/=10;
            }
                if(num=i)
                cout<<num<<endl;
        }
    return 0;
  • 写回答

4条回答 默认 最新

  • 蒟蒻一枚 2021-02-01 20:41
    关注

    第二点:判断等于用两个=,一个=是赋值符号。在最后判断的时候,应该改成 if (num == i)。有问题可以私信我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日