소수?
1과 자기 자신 만을 약수로 가지는 수
이때 0과 1은 소수가 될 수 없다.
Ex. 16은 1,2,4,8,16을 약수로 가진다. 따라서 소수가 아니다.
Ex. 7은 1,7을 약수로 가진다. 1과 자기 자신의 수(7) 을 약수로 가지므로 소수이다.
소수 판별 방법
어떤 수가 소수가 되려면 2부터 시작해서 (어떤 수/2) 까지 나누었을 때 모두 나누어 떨어지면 안된다.
Ex. 13은 소수인가?
13 % 2 != 0 (통과)
13 % 3 != 0 (통과)
13 % 4 != 0 (통과)
13 % 5 != 0 (통과)
13 % 6 != 0 (통과)
-> 소수이다.
Ex. 8은 소수인가?
8 % 2 == 0 (소수가 아니다.)
코드
// 소수인지 판별하는 함수
public boolean isPrime(int checkPrime) {
if(checkPrime == 0 || checkPrime == 1) return false; // 0과 1은 소수가 될 수 없다.
for(int i=2; i<=checkPrime/2; i++) {
if(checkPrime % i == 0) return false;
}
return true;
}
문제 모음
문제 이름 | 문제 태그 | 문제 사이트 | 해설 |
소수 만들기 (프로그래머스) | #소수 판단, #조합(Combination) | https://school.programmers.co.kr/learn/courses/30/lessons/12977 | |
소수 찾기 (프로그래머스) | #소수 판단, #순열(Permutation), #해시 | https://school.programmers.co.kr/learn/courses/30/lessons/42839 |