Python作为当前最为流行的一种语言与身份程序员的大家们几乎是时时刻刻分不开的,无论是做任何方面的工作基本上不会缺少Python的出现,就好似现阶段各平台的低代码Agent开发都支持的是Python语言,对其它的语言友好度都不是很高,那么,我们就非常的有必要将Python深入的了解一下,本系列文章的目的就是为了让大家对于Python有个更加直观的了解,并且要使用Python做很多的小应用,只有真正的实操了才能更好的掌握它。
开发工具:Pythony与人工智能——3、Python开发IDE工具VSCode-CSDN博客
百度百科中:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
num%i==0
我们使用num%i==0的方式来代表是否能被整除,其中num与i都是整数,num是要判断的数,i的取值范围是2~num-1所有整数的集合,【%】取模符号,也可以叫做取余数的符号,交取余。如果一个数除以另外一个数后余数为0,那就代表这个被除数可以整除另外一个数。
仅仅来判断一个数是否是质数,这个只要思想不滑坡也都能搞出来,为了增加难度,我使用的是平方根的方法,但是基本方法的效率并不是最高的,后面我会给出number 的平方根方法。
number = 53 # 要判断的数
# 假设number是质数
is_prime = True
# 检查2到number-1之间的数是否能整除number
for i in range(2, number):
if number % i == 0:
# 如果有数能整除number,则number不是质数
is_prime = False
break
# 输出结果
if is_prime and number > 1: # 排除1,因为1不是质数
print(f"{number} 是质数")
else:
print(f"{number} 不是质数")
质数定义:一个大于1的自然数,除了1和它本身以外没有其他正因数。 因数对称性:如果一个数 n 有一个因子 d,那么 n 必然还有一个因子 n/d。
假设 n 有一个因子 d,那么存在另一个因子 k 使得 n = d * k。 如果 d 和 k 都大于 sqrt(n),那么 d * k > sqrt(n) * sqrt(n) = n,这与 n = d * k 矛盾。 因此,至少有一个因子 d 小于或等于 sqrt(n)。
考虑一个数 n,比如 n = 53: 平方根 sqrt(53) 大约是 7.28。 我们只需要检查 2 到 7 之间的数是否能整除 53。
53 % 2 != 0 53 % 3 != 0 53 % 4 != 0 53 % 5 != 0 53 % 6 != 0 53 % 7 != 0
既然 53 不能被 2 到 7 之间的任何一个数整除,那么 53 就是一个质数。
number = 53 # 要判断的数
# 如果number小于2,则不是质数
if number < 2:
print(f"{number} 不是质数")
elif number == 2: # 如果number等于2,则是质数
print(f"{number} 是质数")
elif number % 2 == 0: # 如果number是偶数,则不是质数
print(f"{number} 不是质数")
else:
# 只需检查到number的平方根即可
for i in range(3, int(number ** 0.5) + 1, 2):
if number % i == 0:
print(f"{number} 不是质数")
break
else:
print(f"{number} 是质数")
运行效果:
判断1~100以内所有的质数有一定的难度,需要思考一下。
# 打印1到100之间的所有素数
for n in range(1, 101):
# 假设n是素数
is_prime = True
# 检查2到n-1之间的数是否能整除n
for i in range(2, n):
if n % i == 0:
# 如果有数能整除n,则n不是素数
is_prime = False
break
# 如果n是素数,则打印出来
if is_prime and n > 1: # 排除1,因为1不是素数
print(n)
# 打印1到100之间的所有素数
for n in range(1, 101):
# 假设n是素数
is_prime = True
# 检查2到n-1之间的数是否能整除n
for i in range(2, n):
if n % i == 0:
# 如果有数能整除n,则n不是素数
is_prime = False
break
# 如果n是素数,则打印出来
if is_prime and n > 1: # 排除1,因为1不是素数
print(n)
质数,可以算是一个大题,不仅仅是我们练习中会使用到,各种算法的比赛中也会运用到的,希望大家能用心把这里搞一下,包括后面的质数,因数等操作,都是非常重要的内容。