for (int i = 2; i <= 10000; i++) { } |
for (int i = 1001; i < 10000; i+=2) {
isPrime[i] = true;
for (int j = 2; j*j <= i; j++) {
if(i%j==0) {
isPrime[i] = false;
break;
}
}
}
// 1은 소수도 합성수도 아니므로 i는 2부터 시작한다.
// 2의 경우 반복문이 실행되지 않으므로 defalt값으로 실행된다.
// 끝이 1,3,7,9로 끝난다
// i*i <= n 까지만 확인하면됨
for (int i = 2; i*i <= num; i++) {
// 1과 num 자신 외에 나누어지는 수가 있는지 검사할 조건문
if (num % i == 0) {
// 나누어지는 수가 있을 경우 isPrime의 값을 true로 바꾼다.
isPrime = true;
// 한 번이라도 이 조건문이 실행될 경우 num은 소수가 아니므로 반복문을 빠져나온다.
break;
}
}