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

输入描述:输入数据含有不多于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;
}

运行结果:

最新文章

  1. 简记用ArcGIS处理某项目需求中数据的步骤
  2. 1Z0-053 争议题目解析707
  3. T4模板
  4. css3 总结01
  5. web form 控件
  6. IDE警告信息不应该被忽略
  7. 前端开发者需要的10个Sublime插件
  8. Mysql存储日期类型用int、timestamp还是datetime?
  9. 关于Java中try-catch-finally-return语句的思考
  10. WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类
  11. Android NDK编程,引入第三方.so库
  12. ubuntu14.04 qt4 C++开发环境搭建
  13. 第三方登录 ----QQ登录
  14. python自动化测试应用-番外篇--接口测试2
  15. LeetCode之“链表”:Linked List Cycle &amp;&amp; Linked List Cycle II
  16. Docker镜像拉不下来?试试这些
  17. C++中的getline
  18. excel将百分比数据转为数值格式
  19. Redis初探-Redis安装
  20. MySql常用命令集Mysql常用命令3

热门文章

  1. (medium)LeetCode 224.Basic Calculator
  2. [HDU 4419] Colourful Rectangle (扫描线 矩形面积并)
  3. 第一次听到了docker
  4. What is the Database Initialization Parameter That is Associated to an ORA-32004 Error ?
  5. OC基础(26)
  6. maven的安装与配置
  7. Linux使用常见错误集锦
  8. java中反射
  9. ionic 向後台請求json 數據 在頁面上的顯示問題
  10. WWF3追踪功能&lt;WWF第六篇&gt;