소수 출력 프로그램이 잘 이해가 가지 않습니다.

조회수 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을 제외하고 나누어 보라는 반복문 입니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)