博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
题目26: 孪生素数问题
阅读量:4104 次
发布时间:2019-05-25

本文共 1285 字,大约阅读时间需要 4 分钟。

孪生素数问题

时间限制:
3000  ms  |  内存限制:
65535  KB
难度:
3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入
第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
114
样例输出
4

 

/*********************************  *    日期:2013-3-14 *    作者:SJF0115  *    题号: 南阳理工 题目26: 孪生素数问题 *    来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=26 *    结果:AC  *    来源: *    总结: **********************************/#include
#include
int prime[1000001];//素数表int Primes(int n){ int i,j; for(i = 1;i <= n;i++){ //偶数 if(i % 2 == 0){ prime[i] = 0; } //奇数 else{ prime[i] = 1; } } //奇数的倍数肯定不是素数 for(i = 3;i <= sqrt(n);i+=2){ if(prime[i]){ for(j = i+i;j <= n;j += i){ prime[j] = 0; } } } return 0;} int main(){ int N,M,count,i; while(scanf("%d",&N) != EOF){ while(N--){ count = 0; scanf("%d",&M); //求素书 Primes(M); //求孪生素数 for(i = 2;i <= M-2;i++){ if(prime[i] && prime[i+2]){ count++; //printf("%d %d\n",i,i+2); } } //两个素数相邻为1的也成为孪生素数。这样的只有一种情况2,3 if(M >= 3){ count++; } printf("%d\n",count); } } return 0;}

 

 

注意:

接下来组测试数据给出m,表示找出m之前的所有孪生素数。

但实际上包括m这个数。

测试用例:

m = 7

孪生素数:

2,3

3,5

5,7

 

 

 

 

 

转载地址:http://dkcsi.baihongyu.com/

你可能感兴趣的文章
C#入门
查看>>
查找最大值最小值
查看>>
杨辉三角
查看>>
冒泡排序法
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
16、Memento 备忘录模式
查看>>
Java基础篇(一)
查看>>
数据库
查看>>
mysql update与group by
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
python猜拳游戏
查看>>
python实现100以内自然数之和,偶数之和
查看>>
python数字逆序输出及多个print输出在同一行
查看>>
python九九乘法表(详解)
查看>>
ESP8266 WIFI数传 Pixhaw折腾笔记
查看>>
苏宁产品经理面经
查看>>
百度产品经理群面
查看>>
去哪儿一面+平安科技二面+hr面+贝贝一面+二面产品面经
查看>>
element ui 弹窗在IE11中关闭时闪现问题修复
查看>>