|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zmLau0727 于 2019-10-12 23:35 编辑
打印1到n之间的所有素数
描述
1.首先定义一个函数名为isprime, 它有一个形参a_integer; 如果a_integer是素数,则函数返回True;否则返回False。
2. 通过input()输入一个正整数n, 然后借助isprime,打印出1到n之间的所有素数,包括n。(如果n是素数,n也应当被打印出来。)
输入格式
输入使用input(),不要增加额外的提示信息
输出格式
每个素数向左对齐,宽度为5,素数之间用空格隔开,每10个素数为一行 。
比如下面的语句,使用format就可以将 i 按照向左对齐,宽度为5的格式输出。
print("{0:<5d}".format(i))
本帖最后由 jackz007 于 2019-10-13 16:56 编辑
- import math
- def isprime(n): # 这个函数用于判断输入参数 n 是否是质数,True - 代表是,False - 代表否
- ret = False # 先假定返回值为 False ,就是不是质数
- if(n > 1): # 质数从 2 开始,如果 n 比 1 大才进行判断
- ret = True # 先假定 n 是质数
- for k in range(2 , int(math . sqrt(n) + 1)): # 在 2 ~ n 平方根的数值范围内通过 k 枚举每一个整数
- if not (n % k): # 如果 n 被其中任何一个 k 整除了
- ret = False # 置质数标志为 False,意思就是不是质数
- break # 既然已经不是质数了,就没必要继续循环判断了(源代码缺少了这一句)
- return ret # 反馈整个函数对输入参数 n 判断的最终结果
- c = 0 # 主程序从这里开始,质数计数器置 0
- n = 800 # 设定 n 值为 800
- for m in range(1 , n): # 在 1 ~ 799 的范围内,通过变量 m 枚举每一个整数
- if(isprime(m)) : # 如果 m 是质数
- if not (c % 10) : # 如果质数计数值为 0 或 10 的整数倍
- if(c): # 如果质数计数值为 10 的整数倍
- print(s) # 打印出字符串 s
- s = '' # 初始化字符串 s 为空串
- s += '%-5d' % m # 按左对齐5个字符域宽来输出数字m,不过是顺序添加到字符串 s 中
- c += 1 # 质数计数器加 1
复制代码
|
|