让我们定义d
n
为:d
n
=p
n+1
−p
n
,其中p
i
是第i个素数。显然有d
1
=1,且对于n>1有d
n
是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<10
5
),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
代码长度限制
16 KB
时间限制
200 ms
内存限制
64 MB
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner se=new Scanner(System.in);
int a = se.nextInt();
int sum =0;
int first,next;
for ( int i = 1 ; i <= a ; i++ ) {
if (isPrem(i)) {
first=i;
for (int j=i+1;j<=a;j++) {
if (isPrem(j)) {
next=j;
if (next-first==2) {
sum++;
}
i=next-1;
break;
}
}
}
}
System.out.println(sum);
}
public static Boolean isPrem(int a) {
if (a==1) return false;
else if(a==2) return true;
else {
for (int j = 2 ; j<=(int)Math.sqrt(a) ; j++) {
if(a%j==0) {
return false;
}
}
return true;
}
}
}