소수
소수는 약수가 자기 자신과 1밖에 없는 수.
소수 구해보기 #1
N이 소수이려면, 2 <= x <= N-1
인 x로 나누어 떨어지면 안됨.
bool getIsPrime(int x) {
if(x < 2) return false;
for(int divider = 2; divider < x; divider += 1) {
if(x % divider == 0) {
return false;
}
}
return true;
}
소수 구해보기 #2
N이 소수가 되려면, 2 <= x <= N/2
인 자연수로 나누어 떨어지면 안된다. 이유는 N의 약수 중에서 가장 큰 것은 N/2보다 작거나 같ㄹ기 때문이다.
N = a*b인데, a가 작을수록 b는 크다. 가능한 a중에서 가장 작은 값은 2이기 때문에 b는 N/2를 넘지 않는다.
bool getIsPrime(int x) {
if(x < 2) return false;
for(int divider = 2; divider <= x/2; divider += 1) {
if(x % divider == 0) {
return false;
}
}
return true;
}
Last updated
Was this helpful?