使用两层循环遍历,使第一个数等于第一层循环的变量值,如i,第二个数等于第二层循环的变量值,如j,则第三个数是number-i-j;判断这三个数都是质数,则是一组符合条件的数。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int cou = count(number);
System.out.println("count= " + cou);
}
public static int count(int number){
int count = 0;
for(int i =2;i<=number;i++){
for(int j=2 ;j<=number ;j++){
if(j==i || (number-i-j ==i) || (number-i-j ==j))
continue;
if(isPrimeNumber(i) && isPrimeNumber(j) && isPrimeNumber(number-i-j))
++count;
}
}
return count;
}
public static boolean isPrimeNumber(int num){
if(num == 2) return true;//2特殊处理
if(num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数
for(int i=3; i<=Math.sqrt(num); i+=2){
if(num % i == 0){//识别被奇数整除
return false;
}
}
return true;
}
}