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

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

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

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

输入样例:

20

输出样例:

4

 package com.hone.basical;
import java.util.Scanner; /**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1007
* @author Xia
* 第一次做的时候是按照判断每一个数是否是素数,然后添加到list中(容易理解,但是超时)
* 现在一直判断数据对是否是素数,先判断a是否是素数,再判断a+2是否是素数。
*/
public class basicalLevel1007PrimeNumGuess { public static void main(String[] args) {
//m用于记录素数对
int m =1;
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if(n < 3){
System.out.println(0);
}
else if (n == 3) {
System.out.println(1);
}else{
for (int i = 5; (i+2) <= n; ) { //下面从四种情况来讨论
if (isPrime(i)) {
if (isPrime(i+2))
m++;
i = i+4;
}else {
if (isPrime(i+2))
i = i+2;
else
i = i+4;
}
}
System.out.println(m);
}
} //判断是否是素数
public static boolean isPrime(int a){
boolean flag = true;
for (int i = 2; i <= Math.sqrt(a); i++) {
if (a%i == 0) {
flag = false;
break;
}
}
return flag;
}
}

最新文章

  1. ubuntu执行sudo apt-get update提示缺少公钥
  2. jquery注意
  3. cocos2dx shader实现灰度图android后台切换回来导致图像偏移的问题
  4. Apache OFBiz 学习笔记 之 服务引擎 一
  5. (POJ 3026) Borg Maze 最小生成树+bfs
  6. 文件锁及其实例,底层文件I/O操作,基本文件操作和实例,Linux中文件及文件描述符概述
  7. [LeetCode169]Majority Element求一个数组中出现次数大于n/2的数
  8. vue初探
  9. Linux内核的基本概念
  10. links
  11. kmp——cogs 1570 乌力波
  12. 关于IT公司技术委员会职责
  13. fiddler抓取https失败解决方案
  14. BZOJ 3473 字符串
  15. Livepeer中文白皮书(翻译)
  16. php中连接mysql数据库的第一步操作
  17. Linux下的启动oracle的EM的命令
  18. js利用sort()方法实现数组排序
  19. linux 双网卡桥接,实现网卡流量镜像与转发
  20. P2147 [SDOI2008]洞穴勘测

热门文章

  1. element ui tabl 输出Html
  2. 二:Nexus知识
  3. 提示&quot;No &#39;Access-Control-Allow-Origin&#39; header&quot;及Spring 中解决跨域问题
  4. 关于利用MQ实现分布式事务的想法【转】
  5. Nginx 502错误总结
  6. Windows Server 2008 R2 搭建网站详细教程
  7. Spring课程 Spring入门篇 7-1 Aspect介绍及PointCut注解应用
  8. Java并发编程:volatile关键字解析(学习总结-海子)
  9. Scrapy框架的使用
  10. FFT板子