先看下题目吧!
补充编程模板中代码,完成如下功能:
获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。
注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。
输入 | 输出 | |
示例 1 | |
|
在刚拿到这道题的时候我们就知道最后输出时要把作为分隔的最后一个‘,’去掉,可以使用字符串分隔符s[:-1]这样最后一个字符就被去掉啦
然后根据题目limit,判断出现浮点数时应该怎么区分,因为要求是大于输入数字的质数,所以当浮点数大于int(n)之后的整数时,就要把n+1
判断语句如下:
n = eval(input())
n_ = int(n)
n_ = n_+1 if n_ < n else n_
大家也可以参照下面的官方答案,异曲同工啦
【参考代码】
def prime(m):
for i in range(2,m):
if m % i == 0:
return False
return True
n = eval(input())
n_ = int(n)
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_, end="")
count -= 1
n_ += 1
这个代码注意:
(1) 需要对输入小数情况进行判断,获取超过该输入的最小整数(这里没用floor()函数);
(2) 对输出格式进行判断,最后一个输出后不增加逗号(这里没用.join()方法)。