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