【PAT】1007. 素数对猜想 (20)
1007. 素数对猜想 (20)
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4 关于素数判断函数:
第1种:按照定义进行判断,这种函数在N(<105)很大时,计算量非常大,在提交程序后显示“运算超时”:
bool prime(int num){
int i;
if(num==) return false;
for(i=;i<num;i++)
if(num%i==) return false;
return true;
}
第2种:在N的平方根范围内进行判断,大大减小运算量,故使用此函数:
bool prime(int num){
int i,k;
if(num==) return false;
k=int(sqrt(num));
for(i=;i<=k;i++)
if(num%i==) return false;
return true;
}
程序设计:
方法一:
1.求出不超过N范围内的所有素数,并将其存储在数组prime_num[]中,由于105范围内一共有9592个素数,所以数组元素个数不应小于9592
2.对prime_num[]数组中的元素进行比较,求出后一位比前一位数值大2的对数
C++ 代码如下:
#include <bits/stdc++.h>
using namespace std;
bool prime(int num){
int i,k;
if(num==) return false;
k=int(sqrt(num));
for(i=;i<=k;i++)
if(num%i==) return false;
return true;
}
int main() {
int prime_num[];
int i,j=,count=;
long n;
cin>>n;
for(i=;i<=n;i++){
if(prime(i)){
prime_num[j]=i;
j++;
}
else continue;
}
for(i=;i<j-;i++)
if(prime_num[i+]-prime_num[i]==) ++count;
cout<<count;
system("pause");
return ;
}
C++ Code 1
方法二:
当N>2时,所有的素数均为奇数,故只需求出相邻奇数中全为素数的对数即可
C++ 代码如下:
#include <bits/stdc++.h>
using namespace std;
bool prime(int num){
int i,k;
if(num==) return false;
k=int(sqrt(num));
for(i=;i<=k;i++)
if(num%i==) return false;
return true;
}
int main() {
int i,count=;
long n;
cin>>n;
for(i=;i+<=n;i+=){
if(prime(i))
if(prime(i+)) count++;
else continue;
}
cout<<count;
system("pause");
return ;
}
C++ Code 2
【PAT】1007. 素数对猜想 (20)的更多相关文章
- PAT 1007. 素数对猜想 (20)
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在无穷多对相邻且 ...
- PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数
PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数 ...
- PAT乙级 1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...
- [C++]PAT乙级1007.素数对猜想 (20/20)
/* 1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷 ...
- PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)
1007 素数对猜想 (20分) 让我们定义dn为:dn = pn+1 − pn,其中pi是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...
- PAT-乙级-1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...
- PAT 1007 素数对猜想(20)
1007 素数对猜想(20 分) 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数."素 ...
- PAT (Basic Level) Practise (中文)- 1007. 素数对猜想 (20)
http://www.patest.cn/contests/pat-b-practise/1007 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对 ...
- PAT Basic 1007 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...
随机推荐
- centos7安装python-pip(转)
好久没更新博客了............. 来一发................ 在使用centos7的软件包管理程序yum安装python-pip的时候会报一下错误: No package pyt ...
- HDU 4638 莫队算法
Group Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 树莓派更改vnc分辨率
参考链接:https://raspberrypi.stackexchange.com/questions/56421/how-to-increase-resolution-on-latest-rasp ...
- 使用OAuth2.0协议的github、QQ、weibo第三方登录接入总结
目录 第三方接入总结 OAuth2.0介绍 github OAuth2.0登录接入 国内第三方应用商SDK使用 微博SDK 腾讯QQ SDK passport.js插件使用 安装 相关中间件.路由 返 ...
- 数学:Nim游戏和SG函数
有若干堆石子,两人轮流从中取石子,取走最后一个石子的人为胜利者 以下的性质是显然的 .无法移动的状态是必败态 .可以移动到必败态的局面一定是非必败态 .在必败态做所有操作的结果都是非必败态 在普通Ni ...
- 用英文写Email的注意事项
- POJ 3233 Matrix Power Series (矩阵快速幂)
题目链接 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A^2 + A^3 + - ...
- 服务器端包含 SSI简介
服务器端包含 SSI,是英文 Server Side Includes的简写.SSI是一种可以指挥服务器动态声称网页内容的HTML指令. 通常SSI可以用来确保网页中的一些通用内容,比如版权信息.联系 ...
- 大数加法(SDUT“斐波那契”串)4335
题目链接:https://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2697/pid/4335.ht ...
- var_dump打印出来格式太乱 怎么调
var_dump()和print_r() 输出的都是文本格式,在浏览器中就是这样如果你加载了 xdebug 扩展,那么 var_dump() 就会以 html 格式输出