南阳理工oj 题目26 孪生素数问题 素数筛选法
来源:互联网 发布:龙之谷2016玩家数据 编辑:程序博客网 时间:2024/06/05 20:05
孪生素数问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入
第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14
样例输出
4
素数筛选法抽象对的来讲就是将2的倍数,3的倍数,5的倍数。。。都去掉剩下的就是素数。
代码如下
for(int i=1;i<maxx;i++) { if(i%2==0) a[i]=0; else a[i]=1; } for(int i=3;i<maxx;i++) { if(a[i]==1) { for(int j=i*2;j<maxx;j+=i) { a[j]=0; } } }
题目代码如下
#include<iostream>#include<cstdio>using namespace std;#define maxx 1000050int a[maxx];int main(){ int N; for(int i=1;i<maxx;i++) { if(i%2==0) a[i]=0; else a[i]=1; } a[2]=1; a[1]=0; for(int i=3;i<maxx;i++) { if(a[i]==1) { for(int j=i*2;j<maxx;j+=i) { a[j]=0; } } } scanf("%d",&N); int m; while(N--) { scanf("%d",&m); int sum=0; for(int i=2;i<m;i++) { if(a[i]==1&&a[i+1]==1) sum++; if(a[i]==1&&a[i+2]==1&&(i+2<=m)) sum++; } printf("%d\n",sum); } return 0;}
阅读全文
0 0
- 南阳理工oj 题目26 孪生素数问题 素数筛选法
- 南阳oj 26 孪生素数
- 南阳理工26题孪生素数
- 素数筛选法----孪生素数问题
- 题目26: 孪生素数问题
- 题目26:孪生素数问题
- nyist 26 孪生素数问题(筛选法)
- 南阳oj 题目22 素数求和问题
- 南阳oj 题目24 素数距离问题
- 南阳OJ 题目24:素数距离问题
- NYOJ 题目26 孪生素数问题
- 南阳理工:素数距离问题
- 南阳理工ACM 题目24 素数距离问题
- 南阳理工ACM 题目22 素数求和问题
- 南阳oj 题目169 素数
- 26 孪生素数问题
- 南阳理工OJ_题目488 素数环
- 南阳理工---题目488素数环
- myeclipse和eclipse设置项目不需要项目名也能访问
- hibernate的缓存机制
- 减少oracle sql回表次数 提高SQL查询性能
- 单例模式
- VIM 的 commentary 插件
- 南阳理工oj 题目26 孪生素数问题 素数筛选法
- 一张图轻松搞懂javascript event对象的clientX,offsetX,screenX,pageX区别
- Android 音乐指示器
- ssh整合
- MySQL冗余数据的三种方案
- 初识Spark之 Spark API
- Linux命令— tar、gzip (打包拆包、压缩解压、打包压缩、解压拆包)
- 使用 Laravel 数据填充生成 中文 测试数据
- Unity UI组件属性中的矩形变换(Rect Transform)的详解