주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
public class PrimeNumber {
public static void main(String[] args) {
PrimeNumber primeNumber = new PrimeNumber();
int[] nums = {1,2,7,6,4};
int solution = primeNumber.solution(nums);
System.out.println("solution = " + solution);
}
public int solution(int[] nums) {
int answer = 0;
//3개의 수를 더해서 사용
int leng = nums.length;
for(int i=0; i<leng-2; i++){
for(int j=i+1; j<leng-1; j++){
for(int h=j+1; h<leng; h++){
int a = nums[i];
int b = nums[j];
int c = nums[h];
int sum = a+b+c;
boolean flag = true;
for(int z=2; z<sum; z++){
if(sum%z == 0){
flag = false;
}
}
if(flag){
answer++;
}
}
}
}
return answer;
}
}
ㄹㅇ 무지성 4중 for문이다... 소수를 구하는 부분이라도 method로 뺄걸 그랬나 ㅎㅎ... 일단 풀고 다른 사람들 풀이 보면서 공부하려고 했는데 다들 이렇게 풀더라... 패스