[완료] 최대공약수 구하는 소스코드가...

kuroneko의 이미지

초보 학생이 프로그래밍 공부하고 있습니다. 최대 공약수를 구하는 프로그램을 짜라고 해서 이렇게 짜보았는데 결과가 나오지 않네요;; 무엇이 문제일까요? while문에서 수행한 작업들이 gcm에 반영되지 않는 것 같네요ㅠㅠ

#include <stdio.h>
 
int findgcm(int a, int b)
{
	int gcm;
	if(a>b)
		gcm=b;
	else
		gcm=a;
	while(a%gcm==0 && b%gcm==0)
	{
			gcm--;
	}
	return gcm;
}
 
int main(void)
{
	int a, b;
	printf("두 정수를 입력하세요: ");
	scanf("%d %d", &a, &b);
	printf("최대공약수: %d \n", findgcm(a, b));
	return 0;
}
익명 사용자의 이미지

while 문 부분을 바꾸세요.

while ( a % gcm != 0 || b & gcm != 0 )

런맨의 이미지

& -> %

인생은 도박이다.