帶余除法
有兩個整數a和b:
①?a%b的余數c
②?如果c=0,那麽b就是兩個數的最大公約數。
③?如果c≠0,那麽a=b,b=c,然後回過頭執行①。
答?*?b除以最大公分母?等於最小公倍數
2.從而將原問題歸結為最小公倍數和最大公約數。該程序的算法如下:
# include & ltstdio.h & gt
int lowest_common_multiple(int m,int n);
int main()
{
int m,n,c;
Printf("請為m輸入壹個值:\ n ");
scanf("%d ",& ampm);
Printf("請為n輸入壹個值:\ n ");
scanf("%d ",& ampn);
c=lowest_common_multiple( m,n);
Printf("請輸出最小公倍數c的值:\ n ");
printf("%d\n ",c);
返回0;
}
int lowest_common_multiple(int m,int n)
{
int余數,m1,n 1;
m 1 = m;
n 1 = n;
而(n!= 0) {
余數= m % n;
m = n;
n =余數;
}
//printf("輸出最大公約數m: %d\n ",m);//此時的M是最大公約數。
return m 1 * n 1/m;
}
3.該程序的輸出如下:
4.這個問題中哪個音符輸出最大公約數?