소수 출력 프로그램이 잘 이해가 가지 않습니다.
조회수 1642회
밑에 코딩은 소수를 1000000000 까지 계속해서 출력하는 프로그램인데요. int is_prime(int n) 의 함수 부분이 잘 이해가 가지 않습니다. 어떻게 해석해야 할까요?
또 메인 부분에서 printed++ % 15 == 0 이 식도 잘 이해가 가지 않습니다. 어째서 15를 나눈 나머지로 식을 세운건지 알고 싶습니다.
'''코드'''
define TRUE 1
define FALSE 0
define MAX 1000000000
int is_prime(int n) {
if (n <= 1) {
return FALSE;
} else if (n == 2) {
return TRUE;
} else {
for (int x = 2; x <= n-1; x++) {
if (n % x == 0) {
return FALSE;
}
}
return TRUE;
}
}
int main() {
int printed = 0;
for (int number = 0; number <= MAX; number++) {
if (is_prime(number)) {
if (printed++ % 15 == 0) {
printf("\n");
}
printf("%d ", number);
}
}
printf("\n");
return 0;
}
'''코드'''
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
또 메인 부분에서 printed++ % 15 == 0 이 식도 잘 이해가 가지 않습니다. 어째서 15를 나눈 나머지로 식을 세운건지 알고 싶습니다.
==> 15개의 소수마다 줄바꿈을 하라는 조건문이빈다.
ex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 .....
int is_prime(int n) 함수는
소수인지 판별하는 함수입니다.
if 1 1은 소수가 아니고 if 2일 때는 소수
그 이후에는 자기 자신외에 다른 수로 나누어서 나머지가 0이되면
false리턴을 해서 출력하지않도록
for (int x = 2; x <= n-1; x++) {
==> 자기자신과 1을 제외하고 나누어 보라는 반복문 입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력