열혈강의 도전파트에 있는 문제 질문입니다.(10장 도전3)
예다움
2023.04.01
열혈강의 문제 질문이에요.제가 짠 코드 확인좀 부탁드려요.질문 내용 :두 개의 정수를 입력받아서 최대공약수(gcm)를 구하는 프로그램을 만드는 건데요.
제가 짠 코드는.
#include stdio.h
int main(void)
{
int a, b;
int i;
int m=1;
printf(두 개의 정수를 입력해 : );
scanf(%d %d, &a, &b);
if(a=b)
{
for(i=0 ; i=b ; i++)
{
if(a%i==0 && b%i==0)
m=i;
}
printf(gcm : %d \n, m);
}
if(ab)
{
for(i=0 ; i=a ; i++)
{
if(a%i==0 && b%i==0)
m=i;
}
printf(gcm : %d \n, m);
}
return 0;
}
이렇게 짜봤는데, 제가 생각하기에는 될것같은데. 안되네요.
어디가 틀렸는지, 지적 좀 부탁드릴께요.
-
거늘
그리고 for 문은 i = 2부터 돌려주셔야 합니다... 1로 나누면 무조건 나머지가 0이잖아요?
-
횃대비
int GCD(int A, int B) // A, B의 최대공약수를 반환
{
int left;
while( (left=A%B) )
{
A = B;
B = left;
}
return B;
}
이 함수를 쓰시면 첫번째 수가 크든 작든 상관 없습니다... A B left를 계속 바꿔가면서 계산하기 때문에