题解:
1.判断出素数,用数组存起来
2.记录相差 2 的的素数对个数
3.输出即可
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(),ct=0,c=0;
int[] num=new int[n];
for (int i=1;i<=n;i++)
if (is_prime(i)) {
num[ct++] = i;
// System.out.println(i);
}
for (int i=0;i<ct-1;i++)
if (num[i+1]-num[i] == 2)
c++;
// System.out.println(ct);
System.out.println(c);
}
public static boolean is_prime(int num){
if (num<4)
return num>1;
if (num % 6 != 1 && num % 6 != 5)
return false;
int sq=(int)Math.sqrt(num);
for (int i=5;i<=sq;i+=6)
if (num%i==0 ||num%(i+2)==0)
return false;
return true;
}
}