최대공약수를 구하는 문제에서 모든 공약수가 출력됩니다
텃골돌샘터
#include stdio.h
int GCM(int a, int b); // GCM 선언
int main(void)
{
int x, y;
printf(최대 공약수를 구할 두 수를 넣으세요: );
scanf(%d %d,&x, &y);
GCM(x, y);
return 0;
}
int GCM(int a, int b) //GCM 함수
{
int i;
for(i=1; i=a*b; i++)
{
if(a%i==0 && b%i==0)
printf(최대 공약수는 \%d\ 입니다\n,i);
}
return 0;
}
제가 짠 코드는 이렇구요.
만약 3과 6을 집어 넣으면 결과값이
1
3
이렇게, 모든 공약수가 모두 나와버립니다.
최대 공약수만 출력하려면 어떻게 해야할까요
가르쳐주세요 ㅠ_ ㅠ
-
지후
비렁뱅이님, 미들눈썹님 두 분의 리플 감사드립니다.
역시 많이 짜보고 많이 생각해보는게 중요하다고 다시금 느낍니다. -
쌍둥이자리
저는 조금 다르게요
int GCM(int a, int b) //GCM 함수
{
\tint i;
\tfor(i = a*b; i = 1; i--)
\t{
\t\tif(a%i==0 && b%i==0)
\t\t{
\t\t\tprintf(\최대 공약수는 \\\%d\\\ 입니다\\n\ -
매화
int GCM(int a, int b) //GCM 함수
{
int i;
int maxGCM=0;
for(i=1; i=a*b; i++)
{
if(a%i==0 && b%i==0)
maxGCM=i;
}
printf(\최대 공약수는 \\\%d\\\ 입니다\\n\