C++判断五位以内的对称素数
题目内容:判断一个数是否为对称且不大于五位数的素数。
输入描述:输入数据含有不多于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++判断五位以内的对称素数的更多相关文章
- ACM——五位以内的对称素数
http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1026 五位以内的对称素数 时间限制(普 ...
- 如何判断一个数是否为素数(zt)
怎么判断一个数是否为素数? 笨蛋的作法: bool IsPrime(unsigned n){ if (n<2) { //小于2的数即不是合数也不是素数 throw 0; ...
- (Miller Rabin算法)判断一个数是否为素数
1.约定 x%y为x取模y,即x除以y所得的余数,当x<y时,x%y=x,所有取模的运算对象都为整数. x^y表示x的y次方.乘方运算的优先级高于乘除和取模,加减的优先级最低. 见到x^y/z这 ...
- 埃氏筛法(求n以内有多少个素数)
题目大意:给定整数n,请问n以内有多少个素数 思路:想必要判断一个数是否是素数,大家都会了,并且可以在O(根号n)的复杂度求出答案,那么求n以内的素数呢,那样求就显得有点复杂了,下面看一下这里介绍的
- java判断输入的数是不是素数
package test; import java.util.Scanner; //判断输入的数是不是素数 public class Test18 { public static void main( ...
- Java基础知识强化04:判断101~200之间有多少素数
1. 判断101~200之间有多少素数? package himi.hebao; /** * (1).编写函数isPrime()用来判断输入数据是否为素数 (2).遍历判断101~200之间的数据是否 ...
- 求解100以内的所有素数(问题来自PythonTip)
求解100以内的所有素数 (AC/Submit)Ratio(4615|22542)20.47% 描述: 输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). a=[2 ...
- 筛选法求n以内所有的素数
求n以内所有的素数? 筛选法:将2到n中所有的数都列出来,然后从2开始,先化掉所有2的倍数,然后每次从下一个剩下的数(必然是素数)开始,划掉其内所有的倍数,最后剩下来的数就都是素数 例:13 红色为 ...
- 【Python实践-7】输出100以内的所有素数
#输出100以内的所有素数,素数之间以一个空格区分(注意,最后一个数字之后不能有空格). i= l=[] : k= ,i): : k=k+ : l.append(i) i=i+ print(" ...
随机推荐
- 算法库:blas, lapack, cblas, clapack, armadillo, openblas, mkl关系
关于blas的介绍介绍见:http://www.cnblogs.com/dzyBK/p/4983953.html blas:提供向量和矩阵的基本运算,用fortran编写. lapack:提供向量和矩 ...
- 山东省第四届ACM省赛
排名:http://acm.sdut.edu.cn/sd2012/2013.htm 解题报告:http://www.tuicool.com/articles/FnEZJb A.Rescue The P ...
- HDU 5877 [dfs序][线段树][序]
/* 题意: n个点的树,每个点给定一个权值,给定一个k,求任意一点的子树中,权值小于k/该点权值的点共有多少个. 思路: 1.很明显的子树的操作,应用dfs序. 2.比赛的时候傻逼了,一直在调划分树 ...
- Winista.Text.HtmlParser; 获取html
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- ORACLE directory 目录--转载
Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性.其语法为:CREATE [OR REPLACE] DIRECTOR ...
- 消除PyCharm中满屏的波浪线
PyCharm使用了较为严格的PEP8的检查规则,如果代码命名不规范,甚至多出的空格都会被波浪线标识出来,导致整个编辑器里铺满了波浪线,右边的滚动条也全是黄色或灰色的标记线,很是影响编辑. 在网上看了 ...
- A+B问题通解_Pascal_C++_Java
世界不断发展,各种电子设备不断变得更加迷你,代码却越写越长…… A+B Problem Input:Two integer A,B Output:The ans of A+B 1971年,Niklau ...
- MCADEx Tools 6.3下载地址
MCADEx Tools 6.3下载地址: http://pan.baidu.com/s/1pLxQPkR 修改参数批量设置工具为模型批量检查工具; 修改模型批量检查过滤工具; 修改工程图管理过滤工具 ...
- eclipse中logcat偶尔不显示log的问题解决办法
Android开发过程中 eclipse 经常会出现 logcat突然就是不现实log的情况.经常遇到,一直没有解决.后来解决了,记录一下. 默认的设置是error 改成verbos 问题解决.
- java基础回顾(七)——ThreadPoolExecutor
先来看一下构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeU ...