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

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다.

숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

function solution(nums) {
    let answer = 0;
    
    const len = nums.length;                		// 주어진 배열 길이를 len에 저장합니다.
    for (let i = 0; i < len; i++) {        		// 첫번째 숫자 반복문
        for (let j = i+1; j < len; j++) {		// 두번째 숫자 반복문
            for (let k = j+1; k < len; k++) {		// 세번째 숫자 반복문
                const number = nums[i]+nums[j]+nums[k]; // 3개의 숫자 더한값을 number에 저장합니다.
                if (isPrime(number))			// isPrime 함수를 호출해 소수 판별을 합니다.
                    answer++;				// 반환값이 true이면 answer에 1을 더합니다.
            }
        }
    }

    function isPrime(number) {			// 소수 판별 함수
        if (number < 2) return true;		// 더한 숫자가 2보다 작으면 true를 반환합니다.
        for (let i = 2; i < number; i++) {	// 2부터 더한 숫자까지 반복합니다.
            if (number % i == 0) return false;  // 더한 숫자가 나누어 떨어지면 false를 반환합니다.
        }
        return true;	// 2보다 작고 나누어 떨어지지 않았다면 true를 반환합니다.
    }
    
    return answer;
}

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기