[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;
}
|
감사합니다.
'ET의 공부 > C언어' 카테고리의 다른 글
[C언어] 2진수를 10진수로 변환하는 방법 (0) | 2020.12.16 |
---|---|
[C언어] 재귀함수를 이용한 정수의 합 구하기 (0) | 2020.12.16 |
[C언어] 두 정수 사이의 모든 소수 구하는 방법 (0) | 2020.12.15 |
[C언어] 소수 판별 방법 (0) | 2020.12.15 |
[C언어] 거듭 제곱 계산 방법 (0) | 2020.12.15 |
댓글()