求最大公因子

2022-07-01 03:21:11 字數 672 閱讀 7187

問題:

(窮舉法)求兩個數的最大公因子,對於輸入的a、b的值,首先確定較小者min,即當ab時min=b,然後依次測試min-1,min-2,min-3,....,1,而最先能同時被a,b整除的那個數,就是a和b的最大公因子。一旦找到最大公因子,無需繼續測試下去。

1

/*求a,b的最大公因子

*/2 #include3

intmain()

4while(!(a>0&&b>0

));11 min=(aa:b;

12for(k=min;k>=1;k--)

13if(a%k==0&&b%k==0)14

break

;15 printf("

the largest common factor is %d.

",k);

16return0;

17}1819

20/*

對a,b的兩個正整數,輸出其所有能夠a與b的公因子

*/21 #include22

intmain()

23while(!(a>0&&b>0

));30 min=(aa:b;

31for(k=min;k>=1;k--)

3237

return0;

38 }

(C )求最大公因子(輾轉相除法)

具體演算法也可以看這篇 求任意兩個整數m,n最大公因子 m,n 的方法如下 若 m n q r 其中 r為餘數,滿足 0 r n 1 則 m,n n,r 且當 r 0時,m,n n 按照這種方法,可以快速而方便地求出任意兩個整數的最大公因子。例如,1500,550 的求解過程如下 1500,550 ...

素數與最大公因子

定義 素數是大於 1 的正整數,並且除了 1 和它本身外不能被其他正整數整除。素數的數量 不超過 n 的素數大約有 frac 個。素性檢驗 人話 判斷乙個數是否是素數。試除法原理 如果乙個數 x 能整除 n 那麼 frac 也一定能整除 n x 與 frac 中必定有乙個數 le sqrt n 因此...

求最大公約數

最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...