scau C语言考试题目

5  真质数

Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: G++;GCC

描述

找出正整数M和N之间(N不小于M)的所有真质数。 
真质数的定义:如果一个正整数P为质数,且其反序也为质数,那么P就是真质数。 
例如,11,13均为真质数,因为11的反序还是为11,13的反序为31也为质数。

输入格式

输入两个数M和N,空格间隔,1≤M≤N≤1000。

输出格式

按从小到大输出M和N之间(包括M和N)的真质数,每行一个。

如果之间没有真质数,则输出NO。

输入样例

10 35

输出样例

11
13
17
31
#include<iostream>
 #include<cstdio>
 #include<cmath>
  using namespace std;
 int m,n;
  //iss(int x)函数的功能:判断x是否是素数
  bool iss(int x)
  {
      for(int i=2;i*i<=x;i++)
{
         if(x%i==0)return false;
    }
    return true;
 }
/* zss(int y)执行两个功能:
     1.对 y求反序ny
     2. 判断y和n */
 bool zss(int y)
 {
     int a[10],ly=y;
    int i=0,ny=0,g=1;
     while(ly)
    {
         a[i++]=ly%10;
        ly=ly/10;
    }     while(i>=0)     {
        ny+=g*a[i-1];
        g*=10;
        i--;
    }
     if(iss(y)&&iss(ny))return true;
     else return false;
 }
int main()
 {
    int b[10000];
     int j=0;
    cin>>m>>n;
     bool iszss=true;
    for(int i=m;i<=n;i++)if(zss(i))
   {     b[j++]=i;
   iszss=false;
}
    for(int k=0;k<j-1;k++)cout<<b[k]<<"\n";
    if(iszss)cout<<"NO";
    if(b[j-1]!=0)
    cout<<b[j-1];
    if(b[j-1]==0)
        cout<<"";
    return 0;
 }

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值