問題:
(窮舉法)求兩個數的最大公因子,對於輸入的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整除,那麼這個數就為最大公約數,這種演算法...