1207 求最大公約數問題

2021-08-28 00:01:12 字數 447 閱讀 1203

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 2410 通過數: 1531

給定兩個正整數,求它們的最大公約數。

輸入一行,包含兩個正整數(<1,000,000,000)。

輸出乙個正整數,即這兩個正整數的最大公約數。

6 9no

#include 

using

namespace

std;

int f(int a,int b)

return f(b,a%b); //輾轉相除法

}int main()

這道題要用到輾轉相除法求最大公約數。

x與y的最大公約數與x對y的餘數的最大公約數是相同的,即f(x, y) = f(y, y%x),可以把原問題轉化為求兩個更小數的最大公約數,直到其中乙個數為0。

求最大公約數

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

求最大公約數

暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...

求最大公約數

1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...