py-100天day4的小练习:输入一个正整数判断它是不是素数 质数又称素数: 一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 注意:0和1既不是质数也不是合数,最小的质数是2
1、最简单的方法就是使用for循环进行遍历,如果num无法整数2-num之间的数,那么就是素数
prime.py
def is_prime1():
"""
最简单的方法:遍历
:return:
"""
num = int(input("请输入一个正整数:"))
is_prime = True
for x in range(2, num):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print("%d 是素数" % num)
else:
print("%d 不是素数" % num)
is_prime1()
2、改进版的遍历:
假如n是合数,必然存在非1的两个约数p1和p2,其中p1<=sqrt(n),p2>=sqrt(n)
from math import sqrt
def is_prime2():
"""
优化后的遍历:
假如n是合数,必然存在非1的两个约数p1和p2,p1<=sqrt(n)<=p2
:return:
"""
num = int(input("请输入一个正整数:"))
end = int(sqrt(num)) # 对num开方并取整
is_prime = True
for x in range(2, end + 1):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print("%d 是素数" % num)
else:
print("%d 不是素数" % num)
is_prime2()