1007. 素数对猜想 (20)

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

现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。

输入格式:每个测试输入包含1个测试用例,给出正整数N。

输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。

输入样例:

  1. 20

输出样例:

  1. 4
  2.  
  3. 关于素数判断函数:

  第1种:按照定义进行判断,这种函数在N(<105)很大时,计算量非常大,在提交程序后显示“运算超时”:

  1. bool prime(int num){
  2. int i;
  3. if(num==) return false;
  4. for(i=;i<num;i++)
  5. if(num%i==) return false;
  6. return true;
  7. }

  第2种:在N的平方根范围内进行判断,大大减小运算量,故使用此函数:

  1. bool prime(int num){
  2. int i,k;
  3. if(num==) return false;
  4. k=int(sqrt(num));
  5. for(i=;i<=k;i++)
  6. if(num%i==) return false;
  7. return true;
  8. }

程序设计:

方法一:

  1.求出不超过N范围内的所有素数,并将其存储在数组prime_num[]中,由于105范围内一共有9592个素数,所以数组元素个数不应小于9592

  2.对prime_num[]数组中的元素进行比较,求出后一位比前一位数值大2的对数

C++ 代码如下:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool prime(int num){
  4. int i,k;
  5. if(num==) return false;
  6. k=int(sqrt(num));
  7. for(i=;i<=k;i++)
  8. if(num%i==) return false;
  9. return true;
  10. }
  11. int main() {
  12. int prime_num[];
  13. int i,j=,count=;
  14. long n;
  15. cin>>n;
  16. for(i=;i<=n;i++){
  17. if(prime(i)){
  18. prime_num[j]=i;
  19. j++;
  20. }
  21. else continue;
  22. }
  23. for(i=;i<j-;i++)
  24. if(prime_num[i+]-prime_num[i]==) ++count;
  25. cout<<count;
  26. system("pause");
  27. return ;
  28. }

C++ Code 1

方法二:

  当N>2时,所有的素数均为奇数,故只需求出相邻奇数中全为素数的对数即可

C++ 代码如下:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool prime(int num){
  4. int i,k;
  5. if(num==) return false;
  6. k=int(sqrt(num));
  7. for(i=;i<=k;i++)
  8. if(num%i==) return false;
  9. return true;
  10. }
  11. int main() {
  12. int i,count=;
  13. long n;
  14. cin>>n;
  15. for(i=;i+<=n;i+=){
  16. if(prime(i))
  17. if(prime(i+)) count++;
  18. else continue;
  19. }
  20. cout<<count;
  21. system("pause");
  22. return ;
  23. }

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. C之Volatile关键字的介绍与使用20170724

    volatile 的意思是“易失的,易改变的”. 一.volatile的引入 这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化.通常在程序中申明了一个变量时,编译器会尽量把它存放 ...

  2. SpringMVC 国际化问题

    1.首先在src文件下添加3个properties文件 a.message.properties message.username=UserName message.password=Password ...

  3. bzoj 1510 [POI2006]Kra-The Disks 二分

    1510: [POI2006]Kra-The Disks Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 466  Solved: 272[Submit][ ...

  4. Android_UiAutomator(安卓UI自动化)环境搭建

    一.配置JDK环境变量 1.新建系统变量JAVA_HOME,然后输入引号内的内容(JDK安装目录) "C:\Program Files\Java\jdk1.8.0_51"      ...

  5. 为Azure Web Site 添加ADFS验证支持之一 设置ADFS的信任关系

    很多时候企业开发的应用都会通过AD(Active Directory)进行验证用户名密码的,在企业里面统一一个AD来进行账号密码管理也是一个很好的实践.当企业打算将一个应用迁移到Azure的时候,使用 ...

  6. reset password for local admin on Windows2016 by Powershell

    上脚本吧,找半天 $password = "yourpassword" $pwd = $password | ConvertTo-SecureString -asPlainText ...

  7. nginx目录路径重定向[转]

    如果希望域名后边跟随的路径指向本地磁盘的其他目录,而不是默认的web目录时,需要设置nginx目录访问重定向. 应用场景:dashidan.com/image自动跳转到dashidan.com/fol ...

  8. JVM学习十一:JVM之深入分析ClassLoader

    本章节准备写的是对类加载器ClassLoader的剖析,但因为前面已经对类加载器做过一些简单的分析和双亲委派机制的分析:因此本章节的侧重点在于实例演示和自定义加载器. 一.什么是ClassLoader ...

  9. 给你灵感!21个精美的 iOS APP 网站设计欣赏

    iOS 吹起了轰轰烈烈的扁平化设计风格,而做为承载 App 宣传重任的网页,整体设计风格的变迁如何?是否也如iOS的设计风格改革一样彻底的翻转?还是如往常一直深耕成熟的设计风格? Spendee Fo ...

  10. [csp-201809-3]元素选择器-编译原理

    声明:同样是参考照抄hyh学长的代码!(有问题我马上删这篇emm 题目链接:http://118.190.20.162/view.page?gpid=T77 题面: 这棵树的样子(同样是来自学长的图) ...