C語言中求最大公約數v,誰幫忙解釋下下面這段話的原理

2021-08-17 12:10:33 字數 1993 閱讀 9531

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...