先来看下什么是质数:
素数又称素数,是指大于1且除1和数本身外不能被其他自然数整除的数(也可以定义为只有1和数两个因数的数)本身)。
简单来说,一个只能被 1 和自身整除的数(需要大于 1)就是质数。例如数字 5,从 2 到 4,不能被它整除,只有 1 和它本身(5)才能被 5 整除,所以 5 是一个典型的素数。
那么在 Python 中,你想如何计算一个随机数是否是素数呢?首先,第一句必须接受用户输入的数字:
n = int(input("please enter the number:"))
那么要计算这个数是否是素数,需要从2除到数之前的自然数,这显然是一个数的范围:
for i in range(2, n):
在循环体中,每个循环当然是判断当前除法是否为整数除法。在这里,可以使用取模运算,即取余数。当余数为 0 时,该数不是质数:
if n % i == 0:
print("%d is not a prime number!" % n)
break
这个break的意思是当数不是质数时,跳出整个循环,这个数不是我们想要的数。
那么,所有循环迭代都完成后还没有找出能整除的情况的话,那么可以判断该数就是一个质数,所以:
else:
print("%d is a prime number!" % n)
至此,所有的代码都写好了,但是为了简单起见,没有判断覆盖层是否大于1,用户输入的数字需要默认大于1:
n = int(input("please enter the number:"))
for i in range(2, n):
if n % i == 0:
print(" %d is not a prime number!" % n)
break
else:
print(" %d is a prime number!" % n)
这里我们要细细品味这段代码,else其实并不是和if成对,而是和for并列,我们常用if...else...or if...elif...else等,但实际上 for 也可以和 else 一起出现,在这段代码中,当一个遍历结果的余数为 0 时,break 生效,循环结束,成对出现的 else 代码不会被执行;当所有遍历结束,没有余数为0,则循环进入else并开始执行,并打印出“这个数是质数”。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在命令行中使用 python 脚本文件12/26
- ♥ python可以做什么08/28
- ♥ 什么是python自动化运维?01/14
- ♥ 什么是python库08/21
- ♥ python中reportgen库的使用和介绍01/03
- ♥ python如何输出字符串对齐?09/02
内容反馈