[Programmers] 소수 만들기 - Summer/Winter Coding(~2018)

동민·2021년 3월 11일
// 소수 만들기 - Summer/Winter Coding(~2018)
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++) { // 소수 판별은 Math.sqrt(int N) 까지
			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)); // 1
		System.out.println(s.solution(nums2)); // 4

	}

}
  • 소수 판별은 <= Math.sqrt(int N) 까지
profile
BE Developer

0개의 댓글