加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言实验题——回文素数

(2012-04-17 20:20:13)
标签:

素数

c语言

回文数

it

回文素数

c

算法

分类: 【C/C++】

描述

求不超过N(N<10^7)的的回文素数。回文数是一个数字对称的整数,如121,12321等

输入

输入包括多行,每行是一个整数N,

输出

每行输出不超过N的最大的回文素数。

 

样例输入
200

 

样例输出
191


 

【参考答案】:

#include <iostream>
#include <cmath>
using namespace std;

bool Sushu(int a)
{
 int i,k=sqrt(a);
 if(a==1) return false;
 else
  if(a==2) return true;
  else
   if(a % 2 ==0) return false;
   else
   for(i=3;i<=k;i+=2)
   {
    if(a%i==0) return false;
   }
   return true;
}

bool Huiwenshu(int b)
{
 int p = b;
 int tmp = 0;
 while(b != 0)
 {
  tmp *= 10;
  tmp += b % 10;
  b /= 10;
 }
 if (tmp == p)
 {
  return true;
 }
 return false;
 }

 

int main()
{
 int i, N;
 bool m,n;
 while(cin>>N)
 {
  for(i=N;i>=0;i--)
  {
   m=Sushu(i);
   n=Huiwenshu(i);
   if(m)
   {
    if(n)
    {
     cout<<i<<endl;break;
    }
   }
  }
 }
 return 0;
}

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有