描述
補充編程模板中代碼,完成如下功能:
獲得用戶輸入數字N,計算並輸出從N開始的5個質數,單行輸出,質數間用逗號,分割。
注意:需要考慮用戶輸入的數字N可能是浮點數,應對輸入取整數;最后一個輸出后不用逗號。
輸入輸出示例
輸入:12
輸出:13,17,19,23,29
1 def prime(m): 2 if m <= 2: 3 return 2 4 else: 5 while True: 6 for i in range(m - 2): 7 if m % (i + 2) == 0: 8 break 9 else: 10 return m 11 break 12 m = m + 1 13 14 n = eval(input()) 15 n = int(n)+1 16 a = prime(n) 17 b = prime(a + 1) 18 c = prime(b + 1) 19 d = prime(c + 1) 20 e = prime(d + 1) 21 print("{},{},{},{},{}".format(a, b, c, d, e))
參考答案:
1 def prime(m): 2 for i in range(2,m): 3 if m % i == 0: 4 return False 5 return True 6 7 n = eval(input()) 8 n_ = int(n) 9 n_ = n_+1 if n_ < n else n_ 10 count = 5 11 12 while count > 0: 13 if prime(n_): 14 if count > 1: 15 print(n_, end=",") 16 else: 17 print(n_, end="") 18 count -= 1 19 n_ += 1
參考答案后改進自己的代碼:
1 def prime(m): 2 if m <= 2: 3 return 2 4 else: 5 while True: 6 for i in range(m - 2): 7 if m % (i + 2) == 0: 8 break 9 else: 10 return m 11 break 12 m = m + 1 13 n = eval(input()) 14 n = int(n)+1 if n > int(n) else int(n) 15 n = prime(n) 16 for i in range(4): 17 print(n,end = ",") 18 n = prime(n+1) 19 print(prime(n))
1、兩個自定義的函數功能不同,答案中的函數只是返回是否為質數;而本人寫的函數是返為大於等於n的第一個質數,感覺還是答案的方法好理解。
2、關於浮點數的處理方面,自己寫的第一個代碼是有問題的,參考了答案的方法。