| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1022 人关注过本帖
标题:如何解决?
只看楼主 加入收藏
btn
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2021-1-30
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:1 
如何解决?
题目描述
因为 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
[code][/co#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;
}de]
搜索更多相关主题的帖子: 质数 num 回文 flag int 
2021-01-31 13:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
连C语言都在上个世纪末,不再将变量一股脑定义到函数头部了。实在不明白这个恶习是谁传授的?

以下代码是根据你原来的算法修改而来,算法未变
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    unsigned a, b;
    cin >> a >> b;

    for( unsigned i=a; i<=b; ++i )
    {
        bool flag = true;
        for( unsigned j=2; flag && j*j<=i; ++j )
            flag = i%j!=0;

        if( flag )
        {
            unsigned num = 0;
            for( unsigned x=i; x!=0; x/=10 )
                num = num*10 + x%10;

            if( num == i )
                cout << i << endl;
        }
    }
}
2021-02-01 08:57
快速回复:如何解决?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039693 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved