作者有话说:本篇共8道题,从易到难的顺序,都是较为常见的题目类型,后续还会补充有关素数(质数)的有关练习题。

1.素数个数

【题目描述】

“六一”儿童节到了,五年级2班的朱老师组织了数素数游戏,游戏规则是这样的:张老师任意给出一个正整数M,参加游戏者说出1至M之间(包括1和M)素数的个数,谁最先说出正确的答案将会得到一个奖品。现在请你编写一个程序对给出的M,输出正确的答案。

【输入】

输入只有一个正整数M(M为小于30000的正整数)

【输出】

输出只有一个数,就是1到M之间的素数的个数。

【样例输入】

20

【样例输出】

8

#include<bits/stdc++.h>
using namespace std;
int main()
{int m,s=0;bool p;cin>>m;for(int i=2;i<=m;i++)//1不是质数 {p=true;for(int j=2;j<i;j++){if(i%j==0){p=false;break;//不是质数 跳出循环 }}if(p==true) s++;}cout<<s;return 0;
}

2.素数的和

【题目描述】

如果一个整数只能被1和它本身整除,这样的数就叫素数。编程输入n和m(n、m在2和200之间,且n<m),求n,m之间所有素数的和。

【输入格式】

n  m

【输出格式】

s(n~m之间所有素数的和)

【样例输入】

2  10

【样例输出】

17

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,m,s=0;bool p;cin>>n>>m;for(int i=n;i<=m;i++) {p=true;for(int j=2;j<i;j++){if(i%j==0){p=false;break;//不是质数 跳出循环 }}if(p==true&&i!=1) s=s+i;//1不是质数}cout<<s;return 0;
}

3.个位数为1的素数

【题目描述】

输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。

【输入】

一行,输入n。

【输出】

输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开),如果没有则输出-1。

【样例输入】

70

【样例输出】

11 31 41 61

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,m;bool p,w=false;cin>>n;for(int i=2;i<n;i++)//注意:根据题目要求不包括1和这个整数 {p=true;for(int j=2;j<i;j++){if(i%j==0){p=false;break;//不是质数 跳出循环 }}if(p==true&&i%10==1) {cout<<i<<" ";w=true;//说明有满足题目要求的素数 }}if(w==false) cout<<-1; return 0;
}

4.求第n小的质数

【题目描述】

输入一个正整数n,求第n小的质数。

【输入】

一个不超过10000的正整数n。

【输出】

第n小的质数。

【样例输入】

10

【样例输出】

29

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,i=1,s=0;bool p;cin>>n;while(n){p=true;i++;for(int j=2;j<i;j++){if(i%j==0){p=false;break; }}if(p==true){s++;if(s==n){cout<<i;break;//找到第n小的质数 跳出循环 } } }return 0;
}

5.回文素数

【题目描述】

如果一个数从左边读和从右边读都是同一个数, 就称为回文数,既是素数又是回文数的数,称为回文素数。找出某个范围内的回文素数。

【输入】

整数m和n,2=<m<n<=106。

【输出】

m~n范围内的所有回文素数,从小大到排列,每行10个数。

【样例输入】

5 500

【样例输出】

5 7 11 101 131 151 181 191 313 353

373 383

#include<bits/stdc++.h>
using namespace std;
int main()
{int m,n,x,xin,s=0;bool p;cin>>m>>n;for(int i=m;i<=n;i++){p=true;for(int j=2;j<i;j++){if(i%j==0){p=false;break; }}if(p==true)//先判断满足素数条件,接着判断是否是回文数 {x=i;xin=0;while(x!=0){xin=xin*10+x%10;//逆序数 x/=10;//去掉个位数 }if(xin==i)//既是素数又是回文数 {s++;//计数 if(s%10==0) cout<<i<<endl;//输出并换行 else cout<<i<<" ";//输出并空格 }} }return 0;
}

6.绝对素数

【题目描述】

绝对素数是指本身是素数,其逆序数也是素数的数。例如:10321与12301是绝对素数。编写一个程序,求出所有m~n(m≥11,n≤1000000)之间的绝对素数。

【输入】

两个整数m和n。

【输出】

m~n之间的绝对素数,每个数之间用空格隔开,每行输出10个

【样例输入】

11 300

【样例输出 】

11 13 17 31 37 71 73 79 97 101

107 113 131 149 151 157 167 179 181 191

199

#include<bits/stdc++.h>
using namespace std;
int main()
{int m,n,x,xin,s=0;bool p,w;cin>>m>>n;for(int i=m;i<=n;i++){x=i;xin=0;p=true;w=true;while(x!=0){xin=xin*10+x%10;x/=10;  } //得出逆序数 for(int j=2;j<i;j++){if(i%j==0){p=false;break;//判断本身是否素数 }}for(int j=2;j<xin;j++){if(xin%j==0){w=false;break;//判断逆序数是否素数 }}if(p==true&&w==true){s++;if(s%10==0) cout<<i<<endl;else cout<<i<<" ";}}return 0;
}

7.孪生素数

【题目描述】

在质数的大家庭中,大小之差不超过2的两个质数称它俩为一对孪生素数,如2和3、3和5、17和19等等。请你统计一下,在不大于自然数N的质数中,孪生素数的对数。

【输入】

只有一行,一个自然数N。(N<=100 0000)。

【输出】

只有一行,一个整数,表示N以内孪生素数的对数。

【样例输入】

20

【样例输出】

5

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,s=0;bool p,w;cin>>n;for(int i=2;i<n;i++){p=true;for(int j=2;j<i;j++){if(i%j==0){p=false;break;}}for(int z=i+1;z<=i+2;z++)//判断的范围不超过 2 {w=true;for(int j=2;j<z;j++){if(z%j==0){w=false;break;}}if(p==true&&w==true)s++;}}cout<<s;return 0;
}

8.纯粹素数(不确定位数)

【题目描述】

纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。输入一个整数N,如果是纯粹素数输出yes,否则输出no。

【输入】

正整数N,N<=10^9。

【输出】

yes或者no,yes表示N是纯粹素数,no表示N不是纯粹素数。

【样例输入】

1013

【样例输出 】

yes

解析:举例N为2131,按照1、31、131、2131的顺序依次判断是否为素数。

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,x,s=0,mod=1;bool p=true;cin>>n;x=n;while(x!=0){s++;x/=10;}//先判断 n 为几位数 for(int i=1;i<=s;i++){mod*=10;x=n%(mod);//从低位到高位依次判断 for(int j=2;j<x;j++){if(x%j==0){p=false;break;}  }} if(p==true&&n!=1) cout<<"yes";else cout<<"no";return 0;
}

C++——素数(质数)专题训练相关推荐

  1. C++——素数(质数)专题训练4

    作者有话说:时隔一年的质数专题训练更新啦~  近期会多多更新笔记!!! 1255:求质数 时间限制: 1.000 Sec  内存限制: 128 MB 题目描述 输入正整数n,输出不大于n的最大质数 输 ...

  2. 自然数 素数 质数_在Java中获取素数的无限列表

    自然数 素数 质数 一个常见的问题是确定数字的素因式分解. 蛮力方法是审判部门( 维基百科 , 可汗学院 ),但是如果必须考虑多个数字,这需要大量的浪费工作. 一种广泛使用的解决方案是Eratosth ...

  3. 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...

    package com.heima.Coding;/*判断101-200之间有多少个素数(质数),并输出所有素数.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明 ...

  4. QLU_ACM 2021 专题训练(一)题解 [暴力、排序、贪心、二分]

    欢迎大家来做QLU_ACM寒假组织的专题训练

  5. C语言:判断一个数是否为素数/质数

    素数/质数的概念:一个的自然数,除了1和它自身外,不能被其他自然数整除的数叫素数,否则成为合数. 0和1既不是素数也不是合数,最小的素数是2. 方法1:从2到n - 1判断有没有能整除n的数.如果有, ...

  6. 自然数 素数 质数_俄罗斯娃娃素数

    自然数 素数 质数 As a child, weren't you in wonder of Russian Dolls, and where you learnt how the dolls fit ...

  7. 自然数 素数 质数_素数列表–最多20,000个素数的图表

    自然数 素数 质数 Here's a list of all 2,667 prime numbers between zero and 20,000. 以下是所有0至20,000之间的2,667个质数 ...

  8. php计算素数,质数素数计算器

    素数 即 质数 . 质数(prime number)又称素数,有无限个.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除(除0以外)的数称之为素数(质数):否则称为合数.根据算术基本定理 ...

  9. Kotlin 找素数/质数

    质数又称素数 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. fun main() { //找素数 通常写法val numbers = listOf<Int>(21 ...

  10. 杭电ACM-LCY算法进阶培训班-专题训练15

    杭电ACM-LCY算法进阶培训班-专题训练(03-07-11-15) 1012 最短路 #pragma GCC optimize(2) #pragma GCC optimize(3,"Ofa ...

最新文章

  1. 二十二、新人成才之路《做人七项原则 做一个节俭惜福的人》
  2. OpenStack上传镜像报错__init__() got an unexpected keyword argument 'token'
  3. Python获取昨天、今天、明天开始、结束时间戳
  4. 第一次上计算机课日记500,第一次上网课作文500字
  5. UA MATH567 高维统计II 随机向量3 常见的高维随机向量的分布
  6. 前端学习(2714):重读vue电商网站34之侧边栏路由改造
  7. 计算机硬件知识教学的信息化手段,《计算机硬件组成》教学设计
  8. Python爬虫 senlenium爬取拉勾网招聘数据,你学会了吗
  9. vue : 无法加载文件 XXXXXXX\vue.ps1,因为在此系统上禁止运行脚本。
  10. Linux学习总结(43)——企业运维最常用的150个Linux命令
  11. find命令用法集锦
  12. 家庭路由器哪家强:固件漏洞多年不修复,更新无济于事
  13. c执行cmd pdf2swf_PDF在线翻阅开发经验(FlexPaper+SWFTools+SaveAsPDFandXPS)【转】
  14. 【渝粤题库】陕西师范大学200081中国古代文学(一)作业(高起本、高起专)
  15. 华为交换机5720常用命令
  16. 传奇地图文件MapInfo参数大全
  17. 志愿人生——带给你每一次温暖
  18. css定位“十字架“之水平垂直居中
  19. 服务器上挂网站怎么挂,网站怎样上挂到云服务器
  20. Codeforces Problem-1593A Elections

热门文章

  1. 网络能力认证CCSC-管理1级 技术1级别
  2. 从前慢-谷粒商城篇章4
  3. appinventor拓展开发
  4. Python——第四天的Gut Punch
  5. shell 实现ping检测存活主机(多进程后台实现)
  6. 估计标准误差syx_相关系数与估计标准误差的关系
  7. 论文总结 - Playing Atari with Deep Reinforcement Learning
  8. @Value 读取yml 文件
  9. Vue antdv a-select 内容搜索过滤(filterOption)
  10. 怎样使用菜单栏中的Apple图标在苹果Mac上强制退出应用程序?