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

输入描述:输入数据含有不多于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. Machine Schedule(最小覆盖)

    其实也是个最小覆盖问题 关于最小覆盖http://blog.csdn.net/u014665013/article/details/49870029 Description As we all kno ...

  2. (转)Mysql 安装与卸载

    这几天准备研究一下Mysql,首先想到的是安装和卸载---因为一直使用的SqlServer卸载太麻烦了,于是尝试了安装与卸载. 原文链接 :http://jingyan.baidu.com/artic ...

  3. Android——Handler总结

    一.Handler的定义:          主要接受子线程发送的数据, 并用此数据配合主线程更新UI.          解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线 ...

  4. jdk线程的死锁

    两个线程相互等着对方释放同步监听器:等着要对方的结果后才能继续执行就会发生死锁. 男对女说:你先嫁给我,我再给你买房子:女对男说:你先给我买房子,我再嫁给你. 多个线程同时锁住同一个监听对象. 在开发 ...

  5. The 2013 ACM-ICPC Asia Changsha Regional Contest - A

    Alice's Print Service Time Limit: 2 Seconds      Memory Limit: 65536 KB Alice is providing print ser ...

  6. Android 进阶 Fragment 介绍和使用 (二)

    管理fragment 因为FragmentManager的API是在Android 3.0,也即API level 11开始引入的,所以对于之前的版本,需要使用support library中的Fra ...

  7. 开发者眼中最好的 22 款 GUI 测试工具

    1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地 ...

  8. cocos2d-x Android版游戏之中国移动SDK嵌入

    . 拷贝API 将SDK\runtime\CMBilling20007.jar拷贝至游戏工程的runtime目录下(或其他目录) ,但切记不能放在libs目录下编译,否则编译报错(如:bad rang ...

  9. EXTJS 6 新特性(译文)

    Extjs 新特性 简介 使用extjs,sencha 团队开发一个简单的框架,可以为创建在任何类型设备上运行的应用,从手机端到平板电脑再到桌面应用,你将能够产生最佳的用户体验,编写更少的代码量,结合 ...

  10. C# 操作XML 如果不存在创建 存在直接追加

    #region 写操作日志----------------这种格式 //<Log 操作人="Admin" 操作结果="成功" 结果详情="数据导 ...