반응형
사용자로부터 숫자를 입력받고, 그 숫자를 가능한 소수의 합으로 분해하여 그 경우의 수를 출력하는 프로그램을 만들어볼 것이다.
기대하는 출력 결과는 아래와 같다.
122
122 = 13 + 109
122 = 19 + 103
122 = 43 + 79
122 = 61 + 61
만약 소수의 합으로 나타내는 것이 불가능하다면 아래와 같이 출력된다.
51
불가능합니다.
이를 구현해보면 아래와 같다.
#include <stdio.h>
int primechecker(int a){
if (a==2){
return 1;
}
for (int b=2;b<a;b+=1){
if (a%b==0){
return 0;
}
}
return 1;
}
int main() {
int input;
scanf("%d", &input);
int d=2;
int f=0;
while(d<=input/2) {
int e=input-d;
if(primechecker(d)==1 && primechecker(e)==1){
printf("%d = %d + %d\n",input,d,e);
f=1;
}
d+=1;
}
if (f==0){
printf("불가능합니다.");
}
}
반응형
'C언어 > 예제' 카테고리의 다른 글
[C] 대소문자를 바꾸는 프로그램 (0) | 2024.11.06 |
---|---|
[C] 입력받은 숫자를 뒤집어 출력하는 프로그램 (0) | 2024.11.06 |
[C] 특정 숫자까지의 합을 구하는 프로그램 (0) | 2024.11.06 |
[C] 피보나치 수열(Fibonacci sequence) (0) | 2024.11.06 |
[C] 소수 판별 프로그램 (0) | 2024.10.19 |