题目内容:判断一个数是否为对称且不大于五位数的素数。

输入描述:输入数据含有不多于50个的正整数n(0<n<232)。

输出描述:对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。

题目分析:

(1)判断它是否是五位以内的数,即该数是否小于100000.

(2)判断该数是否对称,以下三种情况成立:该数是一位数或11;该数是三位数,即该数大于100且小于1000,且该数的百位数等于个位数;该数是五位数,即该数大于10000且前两位等于后两位的逆序,即该数除以1000的商等于个位数与十位数颠倒位置。因四位数的对称数不可能是素数,所以不予考虑。

(3)判断该数是否是素数。首先判断该数是否是1,若是1则不是素数。然后判断该数是否是非2的偶数,若是则非素数。最后从3开始,每次加2,直到其平方大于该数,判断该数对其取余是否为0.若出现取余为0的情况,则该数非素数。

参考代码:

#include <fstream>
#include <iostream> using namespace std;
bool isPrime(int n)
{
if(n==1) return false;
if(n!=2&&n%2==0) return false;
for(int i=3;i*i<=n;i=i+2)
{
if(n%i==0) return false;
}
return true;
}
bool isSym(int n)
{
if(n<12&&n!=10) return true;
if(n>100&&n<1000&&n/100==n%10) return true;
if(n>10000&&n/1000==n%10*10+n/10%10) return true;
return false;
}
int main(int argc,char * argv[])
{
int n;
while(cin>>n)
{
cout<<(n<100000&&isSym(n)&&isPrime(n)?"Yes\n":"No\n");
}
system("pause");
return 0;
}

运行结果:

C++判断五位以内的对称素数的更多相关文章

  1. ACM——五位以内的对称素数

    http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1026 五位以内的对称素数 时间限制(普 ...

  2. 如何判断一个数是否为素数(zt)

    怎么判断一个数是否为素数? 笨蛋的作法: bool IsPrime(unsigned n){    if (n<2)    { //小于2的数即不是合数也不是素数    throw 0;    ...

  3. (Miller Rabin算法)判断一个数是否为素数

    1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所有取模的运算对象都为整数. x^y表示x的y次方.乘方运算的优先级高于乘除和取模,加减的优先级最低. 见到x^y/z这 ...

  4. 埃氏筛法(求n以内有多少个素数)

    题目大意:给定整数n,请问n以内有多少个素数 思路:想必要判断一个数是否是素数,大家都会了,并且可以在O(根号n)的复杂度求出答案,那么求n以内的素数呢,那样求就显得有点复杂了,下面看一下这里介绍的

  5. java判断输入的数是不是素数

    package test; import java.util.Scanner; //判断输入的数是不是素数 public class Test18 { public static void main( ...

  6. Java基础知识强化04:判断101~200之间有多少素数

    1. 判断101~200之间有多少素数? package himi.hebao; /** * (1).编写函数isPrime()用来判断输入数据是否为素数 (2).遍历判断101~200之间的数据是否 ...

  7. 求解100以内的所有素数(问题来自PythonTip)

    求解100以内的所有素数 (AC/Submit)Ratio(4615|22542)20.47% 描述: 输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). a=[2 ...

  8. 筛选法求n以内所有的素数

    求n以内所有的素数? 筛选法:将2到n中所有的数都列出来,然后从2开始,先化掉所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其内所有的倍数,最后剩下来的数就都是素数 例:13  红色为 ...

  9. 【Python实践-7】输出100以内的所有素数

    #输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). i= l=[] : k= ,i): : k=k+ : l.append(i) i=i+ print(" ...

随机推荐

  1. [SQL]断开并更改数据库名

    EXEC sp_dboption 'my', 'Single User', 'TRUE' EXEC sp_renamedb 'my', 'mycrjtest' EXEC sp_dboption 'my ...

  2. nyoj 62 笨小熊

    点击打开链接 笨小熊 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 笨小熊的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法 ...

  3. 第二章 I - The 3n + 1 problem(2.4.2)

    这是一道很坑爹的题,一定注意输入的两个数的大小,并且不能简单的交换,因为在最后的输出的时候还需要将原来的数按照原来的顺序和大小,这就是为什么还得开辟两个值得原因 Description Problem ...

  4. 分享一个基于EF5.0封装的BaseDAL

    public class BaseDAL<T> where T : class,new() { protected DbContext dbContext = DbContextFacto ...

  5. SQL Server参数化查询中应用Like

    一般情况下是SQL语句: Select * From Users Where UserName Like 'Lin%' Select * From Users Where UserName Like ...

  6. cocos2d-lua 3.5 ios搭建步骤

    xcode搭建cocos2d-lua是最简单的,不用 配置一系列环境变量,只把xcode安装好就可以 步骤一:去官网下载quick-3.5,然后打开命令行工具 步骤二:cd进入/Users/song/ ...

  7. ASP.NET MVC 之 View 测试

    项目又出问题了!手贱了一下,使用某个工具整理了一下 View 中的内容,不经意之间,将 View 的输出中大小写不小心搞错了,导致输出的内容没有办法正常解析. 这种问题太隐蔽了,下次再遇到怎么办呢? ...

  8. HRBUST1530

    链接 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1530 这个是典型的二分题,题 ...

  9. 通过weka.jar包来进行数据预处理

    前言:注意首先要将weka.jar包加载到相应的路径中去.程序中的数据也是用的weka自带的数据. 扩展:eclipse添加jar包的操作方法: 打开eclipse ,在对应的工程下右击,选择Buil ...

  10. android 操作sqlite的一点小技巧

    1.android 在sqlite插入数据时,是非常耗时的操作,原因是sqlite缺省会为每个插入操作开启一个事务,当数量变多的时候,自然时间就变得很慢,这时候可以考虑在插入等操作时先开启一个事务,再 ...