描述
写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。
输入格式
输入一个正整数
输出格式
不大于该数的所有素数,各数后面用一个空格分隔。
输入输出示例
输入 | 输出 | |
示例 1 | 100 | 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
解析:
素数的概念又称为质数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。
可以定义一个函数,传入一个整数,返回其是否为素数。判定一个数是否为素数的方法是,用传入的整数 n 除从2到n-1之间的每一个整数,如果存在某个可以整除的数,则其不是素数,如果没有任何除1和其本身以外的因子,则其是素数。(时间复杂度为o(n))
# 将判断一个整数 n 是否为素数的代码定义为一个函数isPrime(n)# 传入参数为整数 n,n 是素数时返回值为True,否则返回False# 时间复杂度为o(n)def isPrime(n): # 判断参数 n 是否为素数的函数 if n <= 1: # 小于2的数字都不是素数 return False for i in range(2,n): # 根据素数定义判定是否是素数,是素数返回1 if n % i == 0: # 从 2到n-1中如果存在一个数是i,使n 可以整除i,则n不是素数 return False else: # 若for循环未遇到return正常结束,则n是素数 return True# 以下代码调用定义的isPrime()判定num是否为素数,输出小于m的所有素数m = int(input()) # 输入一个正整数for num in range(m): # 获得小于m的整数数列 if isPrime(num): # 如果isPrime(num)返回值为True,num 是素数 print(num,end = ' ') # 输