알고리즘/JAVA

[JAVA] 소수 만들기 - 프로그래머스

야아옹 2021. 7. 11. 22:14

 

풀이 : 다중 For 문을 사용하여 3개의 수를 찾고 3개의 수의 합에대하여 소수인지를 판명한다.

        소수 판별의 경우 제곱근 보다 적게 for 문을 진행 하여 소수 판별 진행

 

package com.company;

public class MakePrimeNum {

    public static int[] nums = {1,2,3,4};

    public static void main(String[] args) {
            int rs = solution(nums);
            System.out.println(rs);
    }
    public static int solution(int[] nums) {
        int answer = 0;
        int sumNum = 0;
        for (int i = 0; i < nums.length; i++)
        {
            for (int j = i+1; j < nums.length; j++)
            {
                for (int k = j+1; k < nums.length; k++)
                {
                    sumNum = nums[i] + nums[j] + nums[k];
                    if (isprime(sumNum)) answer++;
                }
            }
        }
        return answer;
    }
    public static boolean isprime(int sumNum)
    {
        int rootNum =(int)Math.sqrt(sumNum);
        for (int i = 2; i <= rootNum; i++)
        {
            if (sumNum % i == 0)
                return false;
        }
        return true;

    }
}