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)的更多相关文章

  1. PAT 1007. 素数对猜想 (20)

    让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在无穷多对相邻且 ...

  2. PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数

    PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数 ...

  3. PAT乙级 1007. 素数对猜想 (20)

    1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...

  4. [C++]PAT乙级1007.素数对猜想 (20/20)

    /* 1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷 ...

  5. PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)

    1007 素数对猜想 (20分) 让我们定义d​n为:dn = pn+1 − pn,其中p​i是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...

  6. PAT-乙级-1007. 素数对猜想 (20)

    1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...

  7. PAT 1007 素数对猜想(20)

    1007 素数对猜想(20 分) 让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数."素 ...

  8. PAT (Basic Level) Practise (中文)- 1007. 素数对猜想 (20)

    http://www.patest.cn/contests/pat-b-practise/1007 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对 ...

  9. PAT Basic 1007 素数对猜想 (20 分)

    让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...

随机推荐

  1. 题解【bzoj2038 [2009国家集训队]小Z的袜子(hose)】

    Description \(m\) 个询问,每次给出一个区间,求从这个区间中取出两个数使得它们同色的概率. \(n,m,a_i \leq 50000\) Solution 莫队模板题 最后的概率是 选 ...

  2. git clone 指定分支的内容

    使用Git下载指定分支命令为:git clone -b 分支名仓库地址 使用Git下载v.2.8.1分支代码,使用命令:git clone -b v2.8.1 https://git.oschina. ...

  3. Turkey HSD检验法/W法

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

  4. 深入分析Java中的 == 和equals

    关于Java中的 == 和equals的解释请看这位博主的文章 :http://www.cnblogs.com/dolphin0520/p/3592500.html 以下是我对这篇文章的一些扩展. 对 ...

  5. oracle导入提示IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件

    oracle导入提示:IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件IMP-00000: 未成功终止导入 解决办法:用户缺少导入权限,授予用户导入权限grant imp_ful ...

  6. codevs 1492 探案第二部

    1492 探案第二部  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 我们伟大的 Sherlock·Holmes 先生最近遇上了一件相当棘手的案子,随 ...

  7. 前端开发进阶:推荐的 CSS 书写规范

    写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经 ...

  8. angular 开发之proxy

    创建proxy配置文件proxy.conf.json 内容如下  {   "/api/*": { "target": "https://abc.com ...

  9. form表单有条件的提交

    form表单提交数据,比如,积分,score,在0--100之间 var score = $('#score').val(); if(score !=''){ if(isNaN(score)){ la ...

  10. SMTP暴力破解

    这里实现一个SMTP的暴力破解程序,实验搭建的是postfix服务器,猜解用户名字典(user.txt)和密码字典(password.txt)中匹配的用户名密码对, 程序开发环境是: WinXP VC ...