Python 和 奧數 -- 同餘法求數值

Python 和 奧數 -- 同餘法求數值

掃碼上面的二維碼關注我的公眾號!


視頻教程:https://www.bilibili.com/video/av95752425/

今天為大家帶來一道數論題。

題目:有一個大於1的整數,除45,59,101所得的 餘數相同,求這個數。

中小學學生可在家長的陪讀下一起學習。

解題思路:

本題是一道數論題,考察的是求公因數。

題目中雖然沒有告訴我們,這個數除這三個數的餘數是多少,但是已告知餘數是相同的。那麼,根據同餘定理,45, 59, 101中任意兩個數的差都能被這個數整除。

同餘定理:設這個數是 x,除 45, 59, 101 所得的餘數是 a,商分別是 k,l,m。

則45=k*x+a,59=l*x+a,101=m*x+a,且 k

所以59-45=(l-k)* x,101-59=(m-l)*x,101-45=(m-k)*x。

即14,42,56能被 x 整除。

解答:

依題意,59-45 = 14, 101-59 = 42, 101-45 = 56

根據同餘定理,這個數能整除 14 和 42。

求14和42的最大公約數,(42,14)=14;

14=2*7,14的因數有 1,2,7,14。

又因為這個數比1大,所以這個數可能為 2 或 7 或 14。

—————————— Python 程序設計 ———————————


Python 和 奧數 -- 同餘法求數值

根據題意的原始 Python 編碼如上圖


Python 和 奧數 -- 同餘法求數值

根據奧數解題思路,優化後的 Python 編碼如上圖


———————————— 練習題 —————————————

一個大於1的自然數去除280,225,190時,

得餘數分別為a,a+2,a+5,則這個自然數是多少?


分享到:


相關文章: