测试使用语言:【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 = True
for j in range(2,x):#排除1和本身,所以是从2开始到x,而不是1到x+1
if x % j == 0:
isf = False
if 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=x
two=y
max=1
#利用辗转相除法
while True:
max=one%two
if max == 0:
break
else:
one=two
two=max
print("{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//100
two=x//10%10
three=x%10
if one**3 + two**3 + three**3 ==x:
print(x,"是水仙花数")
下篇内容为:【程序员数学基础【五、math库常用函数】(Python版本)】:【https://blog.csdn.net/feng8403000/article/details/114198523】
万丈高楼平地起,程序员数学基础,从小学的【什么是数学】至【离散数学】(主要是图论)咱们一步步成长,共同加油。