[C언어] 소수 판별 방법

ET의 공부/C언어|2020. 12. 15. 19:43

C언어에서 소수를 판별하는 방법입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
int main() {
    int n, i, flag = 0;
    printf("정수 입력: ");
    scanf("%d"&n);
    
    for (i = 2; i <= n / 2++i) {
        if (n % i == 0) {
            flag = 1;
            break;
        }
    }
    
    if (n == 1) {
        printf("1 은 소수가 아닙니다.");
    }
    else {
        if (flag == 0)
            printf("%d은 소수입니다.", n);
        else
            printf("%d은 소수가 아닙니다.", n);
    }
    
    return 0;
}

 

소수는 자신과 1이외에는 나누어지지 않는 수입니다.

따라서 for문은 2부터 입력한 정수의 /2 만큼 반복합니다. 이 반복문 안에서 입력한 정수 n과 나누어지는 값이 있으면 이는 소수가 아닙니다.

댓글()