python 解決除5之外的任意一個奇數一定可以被某位個數個9整除的問題

今天在菜鳥上看到一個編程的題目,當時挺感興趣的。倒不是因爲這個程序,而是這個問題

原題是說   輸入一個奇數,然後判斷最少幾個 9 除於該數的結果爲整數。

程序如下:

當然現在說的不是程序本身,而是這裏面的數學,哈哈,本人是學基礎數學的,剛好用到。

再說一下題目,任何一個不是5的奇數都可以被 9.。。。9這種數整除。

實際上這個問題只需要考查除了5之外的奇素數,p,在學 abstract algebra(抽象代數)的時候一定學過Zp,即整數環模掉素數p,

這是一個整環,也是一個有限域,因爲10^n這個數一定是在Zp中的,注意是取模之後在裏面,可以理解爲全體整數按除以p所得的餘數分成了10類,

那麼必定有10^n=10^m方這種情況,這很好想,因爲那裏面總共就p個數,而10^m當,m在動的時候可是很多呀,

所以一定有一個數k such that 10^k = 1, 而這就是意味着  10^k-1==p。搞定啦,

回到爲啥剛纔只用考慮奇素數的問題,這個更好回答,因爲任意一個奇數都可以分解成素數的乘積,比如15=3*5.



if __name__ == '__main__':
    zi = int(raw_input('輸入一個數字:\n'))
    n1 = 1
    c9 = 1
    m9 = 9
    sum = 9
    while n1 != 0:
        if sum % zi == 0:
            n1 = 0
        else:
            m9 *= 10
            sum += m9
            c9 += 1
    print '%d 個 9 可以被 %d 整除 : %d' % (c9,zi,sum)
    r = sum / zi
    print '%d / %d = %d' % (sum,zi,r)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章