輸入兩個正整數m和n,求其最大公約數和最小公倍數
問題分析:
輸入兩個正整數m和n,輸出最大公約數和最小公倍數
最大公約數是幾個數共有的因數最大的一個數字,8和12的最大公約數是4,用輾轉相除法可以實現,其算法過程為:
設兩數為a,b設其中a做被除數,b做除數,temp為餘數
大數放a中,小數放b中;求a/b的餘數;
若temp=0則b為最大公約數;
如果temp!=0則把b的值給a,temp的值給b;
最小公倍數=輸入的兩個數之積除於它們的最大公約數
算法描述:

代碼實現:
#include <stdio.h>
int main()
{
int a,b,temp,m,t;
printf("請輸入兩個數:n");
scanf("%d%d",&a,&b);//輸入兩個數a,b
if(a<b)//如果a小於b,利用中間變量t進行互換
{
t=a;
a=b;
b=t;
}
m=a*b;//m為a,b乘積
temp=a%b;//temp為除數
while(temp!=0)
{
a=b;
b=temp;
temp=a%b;
}
printf("最大公約數是:n%dn",b);
printf("最小公倍數是:n%dn",m/b);
return 0;
}運行結果:

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/225046.html
微信掃一掃
支付寶掃一掃