1樓:倒黴熊
輾轉相除法求兩個數的最大公約數的步驟如下:
先用小的一個數除大的一個數,得第一個餘數;
再用第一個餘數除小的一個數,得第二個餘數;
又用第二個餘數除第一個餘數,得第三個餘數;
這樣逐次用後一個數去除前一個餘數,直到餘數是0為止。那麼,最後一個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。
例如求1515和600的最大公約數,
第一次:用600除1515,商2餘315;
第二次:用315除600,商1餘285;
第三次:用285除315,商1餘30;
第四次:用30除285,商9餘15;
第五次:用15除30,商2餘0。
1515和600的最大公約數是15。
輾轉相除法是求兩個數的最大公約數的方法。如果求幾個數的最大公約數,可以先求兩個數的最大公約數,再求這個最大公約數與第三個數的最大公約數。這樣依次下去,直到最後一個數為止。
最後所得的一個最大公約數,就是所求的幾個數的最大公約數。
2樓:匿名使用者
輾轉相處發
先用小的一個數除大的一個數,得第一個餘數;
再用第一個餘數除小的一個數,得第二個餘數;
又用第二個餘數除第一個餘數,得第三個餘數;
這樣逐次用後一個數去除前一個餘數,直到餘數是0為止。那麼,最後一個除數就是所求的最大公約數(如果最後的除數是1,那麼原來的兩個數是互質數)。
temp=u%v;//是指大數u除以v的餘數u=v;//把小數的值給大數
v=temp//把餘數賦給v
3樓:匿名使用者
這個是歐幾里得演算法。看看這個
c語言裡大數減小數求最大公約數是什麼原理?過程是什麼樣的?
4樓:匿名使用者
1、通過輸入兩個數a和b,然後讓a一直保持著比b大,計算a*b的值,2、在通過a對b的求模,得到兩個的數求模的值,然後把b的值賦值給a,把模數賦值給b,迴圈此操作。知道a對b的模數為0,此時b就是最大公約數,而最小公倍數是通過開始的時候a*b的值除以最大公約數。
程式**:
結果如下圖:
c語言中如何呼叫函式求最大公約數和最小公倍數
5樓:3d動畫師
# include
void main()
int fy(int x,int y)
return k;
}int fb(int x,int y)
return i;}
6樓:匿名使用者
#include
int main ()
p=n*m; //先將n和m的乘積儲存在p中, 以便求最小公倍數時用
while (m!=0) //求n和m的最大公約數
printf("hcf=%d\n",n);
是原來兩個整數的乘積
return 0;}
c語言程式設計如何求最大公約數?
7樓:河蟹蛇薈
最大公約數演算法:
(1)輾轉相除法
兩整數a和b:
① a%b得餘數c
② 若c=0,則b即為兩數的最大公約數,結束③ 若c≠0,則a=b,b=c,再回去執行①(2)相減法
兩整數a和b:
① 若a>b,則a=a-b
② 若a③ 若a=b,則a(或b)即為兩數的最大公約數,結束④ 若a≠b,則再回去執行①
(3)窮舉法:
① i= a b中的小數
② 若a,b能同時被i整除,則i即為最大公約數,結束③ i--,再回去執行②
C語言中如何呼叫函式求最大公約數和最小公倍數
先編寫好最大公約數和最小公倍數的函式,如下 int int a,b 求最大公約數函式int lcm int a,b 求最小公約數函式然後在main 主函式中呼叫 函式和lcm 函式即可。注 回答者編寫的兩個函式分別為求兩個數的最大公約數和最小公倍數 如有錯誤,請多加原諒。include void m...
c語言最大公約數和最小公倍數怎麼表示
include int main int a,b,c,m,t printf 請輸入兩個數 n scanf d d a,b if at a a b b t m a b c a b while c 0 a b b c c a b printf 最大公約數是 n d n b printf 最小公倍數是 n...
C語言題 輸入兩個正整數M,N求其最大公約數與最小公倍數,用迴圈結構
演算法描述 m對n求餘為a,若a不等於0 則 m n,n a,繼續求餘 否則 n 為最大公約數 最小公倍數 兩個數的積 最大公約數 include int main printf greatest common divisor d n n cup printf lease common multip...