입력 코드
#include <stdio.h>
main() {
int a, b;
scanf("%d %d", &a, &b);
int divisor = 1, multiple;
int max, min;
if (a > b)
max = a, min = b;
else
max = b, min = a;
int i, j;
for (i = max; i > 1; i--) {
if (a%i == 0 && b%i == 0) {
divisor = i;
break;
}
}
for (j = min;; j++) {
if (j%a == 0 && j%b == 0) {
multiple = j;
break;
}
}
printf("%d\n", divisor);
printf("%d\n", multiple);
}
코드 설명
#수학 #정수론 #유클리드 호제법
#include <stdio.h>
main() {
int a, b;
scanf("%d %d", &a, &b);
int divisor, multiple;
int max, min;
if (a > b)
max = a, min = b;
else
max = b, min = a;
int i, j;
for (i = 1; i < max; i++) {
if (a%i == 0 && b%i == 0) {
divisor = i;
break;
}
}
for (j = min;; j++) {
if (j%a == 0 && j%b == 0) {
multiple = j;
break;
}
}
printf("%d\n", divisor);
printf("%d\n", multiple);
}
처음에는 i=0으로 시작했다가 i=1로 바꿨다가 "최대"공약수임을 깨닫고 수정했다.
그랬는데 결과는 "틀렸습니다"
그래서 divisor = 1로 초기화해줬는데 맞았다. 왜지??? 뭐가 문제였던거지????
문제 출처
'C' 카테고리의 다른 글
#57. [백준_C언어] 9012 : 괄호 (0) | 2021.01.30 |
---|---|
#56. [백준_C언어] 2751 : 수 정렬하기 2 (0) | 2021.01.29 |
#54. [백준_C언어] 2164 : 카드2 (0) | 2021.01.28 |
#53. [백준_C언어] 1978 : 소수 찾기 (0) | 2021.01.28 |
#52. [백준_C언어] 1920 : 수 찾기 (0) | 2021.01.27 |