程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)
測試使用語言:【Python】
由于此類語言入門非常容易,哪怕初中生亦可以,并且本科/研究生寫論文、做實驗多數所用語言都是【Python】故而選擇此語言。
代碼運行平臺:【win10 x64】
代碼環境安裝:【https://blog.csdn.net/feng8403000/article/details/113784766】
代碼編碼格式:【https://blog.csdn.net/feng8403000/article/details/113785344】
完整的vs搭建并使用【Python】,非常簡單,基礎部分無需任何環境配置,工具自帶即可。
前言:
模運算在數論和程序設計中都有著廣泛的應用,奇偶數的判別到素數的判別,從模冪運算到最大公約數的求法,從孫子問題到凱撒密碼問題,無不充斥著模運算的身影。雖然很多數論教材上對模運算都有一定的介紹,但多數都是以純理論為主,對于模運算在程序設計中的應用涉及不多。那么今天我們就用幾個案例來試試:
1、判斷奇偶數:
奇數(英文:odd),正奇數又稱單數,?整數中,能被2整除的數是bai偶數,不能被2整除的數是奇數,奇數的個位為1,3,5,7,9。偶數可用2k表示,奇數可用2k+1表示,這里k就是整數。
偶數是能夠被2所整除的整數。正偶數也稱雙數。若某數是2的倍數,它就是偶數,可表示為2n;若非,它就是奇數,可表示為2n+1(n為整數),即奇數除以二的余數是一。
0是一個特殊的偶數。它既是正偶數與負偶數的分界線,又是正奇數與負奇數的分水嶺。
while True:x=int(input("請輸入一個整數:\n"))if x%2==0:print(x,"是偶數")else:print(x,"是奇數")2、判斷素數:
質數又稱素數。一個大于1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數(規定1既不是質數也不是合數)。
while True:x = int(input("請輸入一個整數:\n"))isf = Truefor j in range(2,x):#排除1和本身,所以是從2開始到x,而不是1到x+1if x % j == 0:isf = Falseif isf:print(x,"是素數")else:print(x,"不是素數")3、求兩個數的最大公約數:(輾轉相除法)
最大公因數,也稱最大公約數、最大公因子,指兩個或多個整數共有約數中最大的一個。a,b的最大公約數記為(a,b),同樣的,a,b,c的最大公約數記為(a,b,c),多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法、短除法、輾轉相除法、更相減損法。與最大公約數相對應的概念是最小公倍數,a,b的最小公倍數記為[a,b]。
while True:x = int(input("請輸入第一個整數:\n"))y = int(input("請輸入第二個整數:\n"))one=xtwo=ymax=1#利用輾轉相除法while True:max=one%twoif max == 0:breakelse:one=twotwo=maxprint("{0}是{1}與{2}的最大公約數".format(two,x,y))4、求所有3位數的水仙花數(窮舉法)
水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
注:必須使用【//除法取整】而不是【/除法】
for x in range(100,1000):one=x//100two=x//10%10three=x%10if one**3 + two**3 + three**3 ==x:print(x,"是水仙花數")?
下篇內容為:【程序員數學基礎【五、math庫常用函數】(Python版本)】:【https://blog.csdn.net/feng8403000/article/details/114198523】
萬丈高樓平地起,程序員數學基礎,從小學的【什么是數學】至【離散數學】(主要是圖論)咱們一步步成長,共同加油。
總結
以上是生活随笔為你收集整理的程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员数学基础【三、取模运算(取余运算功
- 下一篇: 数据库面试题【一、事务四大特性】