python求兩個數的最大公約數

2021-01-10 跟我一起學編程

前言

提到最大公約數,那麼就不得不說什麼是公約數,它是一個能被若干個整數同時均整除的整數。如果一個整數同時是幾個整數的約數,稱這個整數為它們的「公約數」;公約數中最大的稱為最大公約數。對任意的若干個正整數,1總是它們的公因數。

舉個例子:30和40的公約數有:1,2,5,10,那麼10是這幾個裡面最大的,就是30和40的最大公約數。

python求最大公約數

1.python求最大公約數設計思路

給定兩個數,從1開始嘗試,步長為1逐漸遞增,為了優化算法,只需要循環到兩個數中最小的那個數就可以。所以,第一步就是計算出兩個數中最小的數,然後利用for循環從1到最小的那個數進行枚舉,如果該數能夠同時被兩個數整除,則記錄下來,直到循環結束,最後,最大的這個就是最大公約數。

特別注意:這裡會用到range函數,range(0,5)的結果為0,1,2,3,4注意是沒有5的,因此在本例中循環時應該是從1到最小的那個數+1才對。

2.最大公約數的python實現

說明:在上面的代碼中,我們會用到自定義函數的定義方法:def ,兩個數的最小數的判斷方法,for循環和枚舉取值,整除取餘,輸入輸出等內置函數。

結語

有條件的多加練習,主要還是有個算法思路最重要,在不斷的實踐中驗證算法的優劣和正確性。

相關焦點

  • 雲計算開發學習實例:Python3 最大公約數算法
    Python3中最大公約數算法可以用以下代碼來實現:執行以上代碼輸出結果為:當最小值為最大公約數時,直接返回;2. 當最小值不為最大公約數時,最大公約數不會大於最小值的1/2;3. 求最大公約數理應從大到小循環遞減求最大。
  • 偽從零開始學算法 - 2.2 求最大公約數
    簡介兩個或多個正整數數的公約數是,對於這些數,存在一個正整數,可以整除它們。公約數可能有若干個,而其中最大的就是最大公約數。也就是:A: card(A) ≥ 2, (66 a ∈ A, a ∈ N*) ;B = {n ∈ N*| 66 x ∈ A, x mod n = 0};k = max{B};k即為A中各數的最大公約數。
  • 2017福建招警行測答題技巧:「消減法」求最大公約數和最小公倍數
    2017福建招警行測答題技巧:「消減法」求最大公約數和最小公倍數 如有任何報考疑問,請加入Q群:2017福建招警交流群 243753182,求幾個數的最大公約數,除了我們熟知的短除法和分解質因數法之外,還有《幾何原本
  • 最小公倍數與最大公約數
    公倍數是「零件」的統合公倍數的定義在兩個或兩個以上的自然數中,如果它們有相同的倍數,這些倍數就是它們的公倍數。他當時的回答非常有趣:「最大公約數太小。」確實,不同要素之間的差異性越大,集合得到的「最大公約數」越小,小到最後可能只剩下「1」。公司要開會做一個決定,如果採取合議制,反而很難做出能帶來最大利益的決斷,這個觀點我也認可。團隊在執行某個項目時,各幹各的是最危險的,因為最終的項目成果,很可能變成各個成員之間的「最大公約數」,小之又小。
  • 如何計算兩個數的最大公約數?用世界上一個很古老的算法就可以
    不管是在學習或者生活中,我們經常會遇到要求兩個數的最大公約數的問題。最大公約數那麼,什麼是公約數?什麼是最大公約數?公約數,顧名思義,就是能被兩個數同時整除的一些數。而最大公約數就是這些數中的最大值。對比上面兩個式子,我們發現二者共同的只有2.因此,96和50的最大公約數就是2.如果兩個數相同的質因數多於1個呢?那麼最大公約數就是這些質因數的乘積。再來舉個例子,我們要求90和50的最大公約數。90=2·3·3·5, 50=2·5·5二者相同的質因數有2和5,因此它們的最大公約數就是2·5=10.
  • 小學五年級奧數——最大公約數和最小公倍數
    幾個數公有的約數,叫做這幾個數的公約數;其中最大的一個,叫做這幾個數的最大公約數。自然數a、b的最大公約數可記作(a,b)   幾個數公有的倍數,叫做這幾個數的公倍數;其中最小的一個,叫做這幾個數的最小公倍數。
  • 求最小公倍數和最大公因數的方法
    求最小公倍數和最大公因數是小學數學分數中通分和約分中的內容;首先,我們來複習一下它們的定義。最小公倍數:是指在兩個或兩個以上的自然數中,共有倍數的最小的數。最大公因數:也稱最大公約數,最大公因子。指兩個或兩個以上整數中共有約數的最大的數。
  • 怎樣可以很快算出最大公約數和最小公倍數?後悔知道得太晚了!
    怎樣可以很快算出最大公約數和最小公倍數?後悔知道的太晚了!求最小公倍數的基礎是求最大公約數。求最大公約數的算法是「更相減損法」或「輾轉相除法」。「更相減損法」是最早記錄於《九章算術》中的中國古法,與古希臘歐幾裡得發現的「輾轉相除法」只是形式略有不同,但其實還是一回事。
  • 常州市賽題 公約數公倍數
    最近小T對最大公約數和最小公倍數產生了濃厚的興趣,並學會了用輾轉相除法求兩個自然數的最大公約數。但小T並不滿足於會用輾轉相除法,他是一個酷愛鑽研的人,無論學什麼都喜歡刨根問底,他想能不能把這個問題反過來:即已知兩個自然數A和B的最大公約數G和最小公倍數L,問有多少對滿足條件的自然數對A和B?
  • 最大公約數:統一戰線的實質與功能
    一、統一戰線實質的充分體現  最大公約數(Greatest Common Divisor)是一個數學概念,也稱作最大公因數、最大公因子。它是指兩個或多個整數共有約數中最大的一個。把最大公約數這一概念引入統一戰線理論,是對統一戰線成員(即同盟者)的最大共同利益的精到表述。我們可從以下3個方面理解統一戰線理論中最大公約數這一概念的深刻含義。
  • 2014國家公務員考試行測數量關係:最大公約數
    請考生密切關注廣東華圖教育官網(按CTRL+D收藏本頁)   最大公約數與最小公倍數問題   考試中的最大公約數與最小公倍數問題是運用最大公約數與最小公倍數求解計算的題 型,考生必須了解最大公約數與最小公倍數的意義,熟練掌握,靈活運用,難題巧解。
  • 五十八、如何對一個數進行分解質因數
    (分解質因數也稱分解素因數)求一個數分解質因數,要從最小的質數除起,一直除到結果為質數為止。分解質因數的算式叫短除法,和除法的性質相似,還可以用來求多個數的公因式。將需要分解的數字從2開始遍歷,則分解的結果都會是質數。需要分解的數字是每一次上次分解之後的結果。
  • python割圓法求「圓周率」
    歡迎加入我們臥虎藏龍的python討論qq群:996113038┉┉┉┉┉┉ 『
  • 以最大公約數畫出最大同心圓 ——學習習近平關於正確處理一致性與...
    (二)統一戰線各個層面、各個領域的最大公約數  最大公約數本是一個數學術語,可引申為「求大同」。尋求最大公約數的過程就是求大同的過程。在政治社會領域,最大公約數理念要求在面對利益格局多元、價值取向多樣的複雜局面時,最大限度地尋求利益共同點和共同價值觀。黨的十八大以來,習近平多次指出:「凝聚共識很重要,思想認識不統一時要找最大公約數。」習近平關於最大公約數的論述是一個立意深遠、內涵豐富、博大精深的有機整體。
  • 輾轉相除法 | 最大公約數 | 連分數
    用輾轉相除法可以求得被除數與除數的最大公約數。最大公約數簡記為 g. c. d.,即greatest  common devisor的首字母縮寫。當然,有了最大公約數,也就可以容易地求出兩數的最小公倍數。最小公倍數簡記為 l. c. m.,即 least common multiple的首字母縮寫 。
  • 求最大公因數
    如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。    可能聽著很懵對吧,我們用具體數據來試驗一下 其中"a mod b"是指取 a ÷ b 的餘數。更相減損法:    更相減損術是出自《九章算術》的一種求最大公因數的算法,它原本是為約分而設計的,但它適用於任何需要求最大公約數的場合。
  • 科創板巧解「減持題」 多選項力求「最大公約數」
    摘要 【科創板巧解「減持題」 多選項力求「最大公約數」】隨著科創板試點註冊制改革漸次深入,首發股份如何有序流通、創投基金如何循環流轉、如何引入增量資金等一系列「必答題」,在全新的減持規則中找到答案。
  • 小學1-6年級數學基礎概念:公約數、公倍數、互質數
    小學1-6年級數學基礎概念:公約數、公倍數、互質數   什麼叫公約數?   公約數,亦稱「公因數」。它是幾個整數同時均能整除的整數。如果一個整數同時是幾個整數的約數,稱這個整數為它們的「公約數」;公約數中最大的稱為最大公約數。
  • 對話兩會:在碰撞中求得利益「最大公約數」
    如何在兩會上達成共識,尋得社會各群體利益的「最大公約數」? 要從全局出發,視野需更寬廣 劉希婭:全國人大代表的職責,就是在一個國家的頂層宏觀層面和具體的百姓生活層面之間架起橋梁,這需要更深入的調研和更寬廣的視野。我來自重慶的一所小學,但當我坐在人民大會堂參加全國人代會時,不能僅代表我所在的地區、小學發言,還要從全局考慮問題。