[C언어] 입력된 수가 두 소수의 합으로 이루어져 있는지 판별

ET의 공부/C언어|2020. 12. 16. 09:55

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
26
27
28
29
30
31
#include <stdio.h>
int checkPrime(int n);
int main() {
    int n, i, flag = 0;
    printf("정수 입력: ");
    scanf("%d"&n);
    
    for (i = 2; i <= n / 2++i) {
        if (checkPrime(i) == 1) {
            if (checkPrime(n - i) == 1) {
                printf("%d = %d + %d\n", n, i, n - i);
                flag = 1;
            }
        }
    }
    if (flag == 0)
        printf("%d 은 두개의 소수의 합이 아닙니다.", n);
    
    return 0;
}
 
int checkPrime(int n) {
    int i, isPrime = 1;
    for (i = 2; i <= n / 2++i) {
        if (n % i == 0) {
            isPrime = 0;
            break;
        }
    }
    return isPrime;
}

 

 

감사합니다.

댓글()