作者有话说:时隔一年的质数专题训练更新啦~  近期会多多更新笔记!!!


1255:求质数

时间限制: 1.000 Sec  内存限制: 128 MB

题目描述

输入正整数n,输出不大于n的最大质数

输入

只有一行且只有一个正整数: n  ( 1 < n <= 10000 )

输出

只有一行且只有一个正整数:不大于n的最大质数

样例输入

10

样例输出

7

解题思路:首先,这道题要注意n的数据范围不是特别大,那我们可以考虑就还是用int类型。其次,这道题要求解的是不大于n的最大质数,当给定一个范围需要枚举其中的质数,并且要最大,我们可以考虑从大到小的顺序去枚举,循环的次数就少了许多。

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;for(int i=n;i>1;i--)//从大到小的顺序进行枚举 {bool p=true;for(int j=2;j*j<=i;j++){if(i%j==0){p=false;break; }   }if(p==true){cout<<i;return 0;} } return 0;
}

1170: 质数的和与积

时间限制: 1.000 Sec  内存限制: 128 MB

题目描述

两个质数的和是 S,它们的积最大是多少?

输入

一个不大于 10000 的正整数 S,为两个质数的和。

输出

一个整数,为两个质数的最大乘积。数据保证有解。

样例输入

50

样例输出

589

提示

19+31=50,19*31=589.

解题思路:

当S=50时,满足条件的数有 3 7 13 19 | 31 37 43 47

当S=100时,满足条件的数有3 11 17 29 41 47 | 53 59 71 83 89 97

当S=108时,满足条件的数有5 7 11 19 29 37 41 47 | 61 67 71 79 89 97 101 103 107(和1配对不算);

通过3个举例,我们不难发现两个质数的最大积都产生在S折中的左右两边第一个数,所以,我们考虑从中间开始枚举我们要的质数。比如,以S=50为例,先按照 S/2 开始从大到小的顺序找到第一个质数  i = 19,判断 i 和(S-i)这两个数是否为质数,如果都为质数,则输出 i*(s-i) 的积,代码结束。

#include<bits/stdc++.h>
using namespace std;
int main()
{int s;cin>>s;for(int i=s/2;i>1;i--)//先按照 S/2 开始从大到小的顺序找到第一个质数 i = 19{bool p=true,w=true;for(int j=2;j*j<=i;j++)//判断 i 是否为质数{if(i%j==0){p=false;break;   }   }for(int j=2;j*j<=(s-i);j++)//判断(S-i)是否为质数{if((s-i)%j==0){w=false;break;    }   }if(p==true&&w==true)//如果都为质数,则输出 i*(s-i) 的积{cout<<i*(s-i);return 0;}  } return 0;
}

该题小结:这道题想要解出来并不难,方法有很多,主要还是透过现象看本质,需要同学们深度剖析这道题如何能快速找出解,可以通过代码的时间耗时以及内存大小体现出来,不断优化自己的代码,从中不仅加深了对题目的理解也提升了自我优化的水平。

1283: 质数对

时间限制: 1.000 Sec  内存限制: 128 MB

题目描述

如果两个连续奇数都是质数,则称这两个数为质数对;求出n以内所有的质数对数目。

输入

只有一行且只有一个正整数:n   ( 1 <= n <= 30000 )

输出

只有一行且只有一个整数:n以内所有的质数对数目

样例输入

10

样例输出

2

注意:该题与上题解题思路差不多,需要注意的点主要是循环的区间,注释已在代码中标注。

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,s=0;cin>>n;for(int i=3;i<=n-2;i+=2)//1不是质数,2是偶数,所以从3开始 {//i<=n-2防止最后一对的质数对溢出 ; 排除偶数所以从3开始不断+2 bool p=true,w=true;for(int j=2;j*j<=i;j++)//判断 i 是否为质数 {if(i%j==0){p=false;break; }   }for(int j=2;j*j<=i+2;j++)//判断 i 连续的下一个奇数是否为质数 {if((i+2)%j==0){w=false;break;   }   }if(p==true&&w==true) //如果 i 和 i+2 都为质数,则找到一组质数对并计数 {s++;}    } cout<<s;return 0;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. Kotlin 找素数/质数

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

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

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

最新文章

  1. vs2015添加管理员权限
  2. Mybatis的parameterType传入多个参数
  3. Android系统如何管理自己内存的?
  4. Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现
  5. XML引入多scheme文件约束简单示例
  6. 测试HAPROXY的文件分流办法
  7. link函数 matlab,安装Excel link插件,实现Excel与Matlab的互联
  8. Linux下使用od查看文件
  9. 《Python核心编程》笔记 Python对象
  10. iOS LLDB console debug总结
  11. Spring Boot 2 尝鲜-动态 Banner
  12. python整理表格数据_python --整理数据结构(列表)
  13. 从菜鸟到资深工程师的进阶之路-任玉刚专访
  14. LaTex论文排版 | (24) 插入超链接和目录
  15. trans系列是sci几区_sci期刊分几个区
  16. 使用OpenCV和Python实现图像的颜色检测
  17. css 控制文字换行相关属性
  18. 各种艺术字、图片在线制作
  19. 深入浅出filament Android编译脚本
  20. tensorflow中的eval的用法

热门文章

  1. 修改计算机中文用户名,Win10电脑将中文登录用户名更改为英文名的方法
  2. 我的世界服务器无线刷物品,《我的世界》1.12无限刷物品方法图文教学
  3. Flutter学习之倒计时计时器
  4. 员工离职2个月,前领导要求他回去改代码,员工:收费5千一次
  5. 兼容性运行程序永远_永远不会有太多的应用程序
  6. 计算机二级只有上机考试吗,计算机等级考试二级是上机考试吗
  7. 关于前端在vue中实现‘距离某个时间点的倒计时’问题:设置了间隔计算时间,刚开始有停顿。
  8. Tableau 日月环比同比
  9. 前列腺增生症的治疗行业调研报告 - 市场现状分析与发展前景预测
  10. (十二)采购与入库数据表