코딩테스트/기본
[프로그래머스/JavaScript] 소수 만들기 (Level 1)
고코모옹
2021. 5. 26. 21:56
https://programmers.co.kr/learn/courses/30/lessons/12977
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
1. 문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
2. 소수 판별
- 3중 반복문을 돌려 그 합계가 소수인지 판단
- 소수 판별하는 코드가 중요
- 제곱근보다 작은 수에서 나눠지는 수가 없을 경우 제곱근보다 큰 수에서도 나눠지는 수가 없기 때문에 소수로 판단
function isPrime(num) {
let result = false;
if(num === 2) return true;
for(let i = 2; i <= Math.floor(Math.sqrt(num)); i++) {
if(num % i === 0) {
result = false;
break;
} else {
result = true;
}
}
return result;
}