描述
编程找出N(即小于等于N)的所有素数。
输入格式
输入一个正整数
输出格式
在同一行中从小到大依次输出不大于n的全部素数,每个数字后面一个空格。
样例
输入(1)
97
输出(1)
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 97
代码
def is_prime(n):
"""判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
减小判定区间,减少循环次数,提升效率"""
if n < 2:
return False # 0、1、负数以及偶数都不是素数
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0: # 能被2到其n-1之间的数整除的数不是素数
return False
else:
return True # for循环正常结束,未遇到return的数是素数
def output_prime(number):
"""接收一个正整数为参数,遍历从0到number之间的所有整数
在一行中输出不大于number的所有素数,函数无返回值"""
for i in range(number + 1): # 遍历小于n的整数
if is_prime(i): # i为素数时输出i
print(i, end=' ') # 输出后不换行,空格分隔输出
positive_int = int(input()) # 输入一个正整数
output_prime(positive_int) # 调用无返回值函数,不需要用print()