1261: 孪生素数
程序员文章站
2024-03-16 15:52:34
...
题目
Description
在质数的大家庭中,大小之差不超过2的两个质数称它俩为一对孪生素数,如2和3、3和5、17和19等等。请你统计一下,在不大于自然数N的质数中,孪生素数的对数。
Input
只有一行,一个自然数N。(N<=10^6)
Output
只有一行,一个整数,表示N以内孪生素数的对数。
Sample Input
20
Sample Output
5
代码块
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);
int n = cn.nextInt();
int[] a = new int[n];
int k =0;
for(int i = 2;i<=n;i++){
if(isPrime(i)){
a[k] = i;
k++;
}
}
int count=0;
for(int i =0;i<k-1;i++){
if(a[i+1]-a[i]<=2){
count++;
}
}
System.out.println(count);
cn.close();
}
private static boolean isPrime(int i) {
if(i==2) return true;
if(i%2==0||i<2) return false;
int m =(int) Math.sqrt(i);
for(int c = 3;c<=m;c+=2){
if(i%c==0) return false;
}
return true;
}
}
上一篇: 创建react项目基本流程
下一篇: Java数据结构和算法-栈