【Mooc Python语言程序设计】第五章 测试题 编程题目No.2 连续质数计算

题目

补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

注意:用户输入的数字N可能是浮点数,都是正数;最后一个输出后不用逗号

输入输出示例:
输入:12
输出:13,17,19,23,29

解答代码

标准答案

def prime(m): # 质数的计算
    for i in range(2,m):
        if m % i == 0:
            return False
    return True # 注意不可放在条件语句中,e.g.15非质数,却直接输出

n = eval(input())
n_=round(n) # 这里浮点数->整数,也可int()直接去除浮点数部分,下句n_=n_+1即可
n_=n_+1 if n_<n else n_ 
count=5
while count>0: # 倒计数
    if prime(n_):
        if count>1:
            print(n_,end=',')
        else:
            print(n_)
        count-=1
    n_+=1

简化答案:(对浮点数处理部分)

def prime(m): # 质数的计算
    for i in range(2,m):
        if m % i == 0:
            return False
    return True # 注意不可放在条件语句中,e.g.15非质数,却直接输出

n = int(eval(input()))+1 # 直接去掉浮点数部分+1开始
count=5
while count>0: # 倒计数
    if prime(n):
        if count>1:
            print(n,end=',')
        else:
            print(n)
        count-=1
    n+=1

你可能感兴趣的:(【Mooc Python语言程序设计】第五章 测试题 编程题目No.2 连续质数计算)