public class MakePrimeNum {
public int solution(int[] nums) {
int answer = 0;
for (int i = 0; i < nums.length - 2; i++) {
for (int j = i + 1; j < nums.length - 1; j++) {
for (int k = j + 1; k < nums.length; k++) {
int sum = nums[i] + nums[j] + nums[k];
if (prime(sum)) {
answer++;
}
}
}
}
return answer;
}
public boolean prime(int num) {
int count = 0;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
count++;
}
}
return count == 0 ? true : false;
}
public static void main(String[] args) {
MakePrimeNum s = new MakePrimeNum();
int[] nums1 = { 1, 2, 3, 4 };
int[] nums2 = { 1, 2, 7, 6, 4 };
System.out.println(s.solution(nums1));
System.out.println(s.solution(nums2));
}
}
- 소수 판별은 <= Math.sqrt(int N) 까지