c프로그래밍 코드중 질문드립니다.
겨루
질문 제목 : 최소공배수 구하는 프로그램입니다.최소공배수 구하는 프로그램을 제가 짰는데요 이런건 나옵니다
(4,16)의 최소공배수나 (3,27)의 최소공배수 같은건 누르면 최소공배수가 나오는데
문제는 위의 숫자들처럼 딱 떨어지는 숫자가 아닌 (6,13)이나 (7, 25) 등등 이런 숫자들의
최소공배수를 구해야 하는데 코드가 어디가 잘못됐는지 좀 알고 싶습니다.질문 내용 :
#include stdio.h
int main(void)
{
int a,b,bunja,bunmo, namugi;
a = 0; b = 0; bunja = 0; bunmo = 0; namugi = 0;
printf(임의의 두 정수를 입력하시오 : );
scanf(%d %d, &a, &b);
if(a == 0 || b == 0){
printf(두 수는 1이상의 정수이어야 합니다. \n);
goto exit;}
if(a=b){ bunja=a; bunmo=b;}
else { bunja = b; bunmo =a;}
namugi = (bunja % bunmo) ;
if(namugi != 0)
{bunja * bunmo;}
printf(%d 와 %d의 최소 공배수는 %d입니다. \n, a,b,bunja);
exit : return(0);
}
=======================================================
파일은 4,16을 입력하였을때와 6,13을 입력하였을떄의결과문 입니다.
-
서리서리
일단 코드가 어떻게 구조화되어 있는지도 잘모르겠고, 어떤 논리로 최소공배수를 구한건지도 잘 모르겠네요.
최소공배수 = 정수1 * 정수2 / 최대공약수
이 공식 아닌가요? 먼저 최대 공약수를 구하셔야 하지 않나요?
이점을 생각해보시고 다시 코딩해보서야 할듯합니다.
그리고 아무리 초보자라고 하더라고 goto문은 되도록 안쓰는게 좋습니다. 이점도 고려하시길..