A46359. 要求:设计一个算法,求 1~n(n 为大于 2 的正整数)中有哪些素数,总共是多少个素数? 根据上述计算规则,补全下列代码。函数名:getPrime(n)参数表:n -- n 为大于 2 的正整数。返回值:返回素数组成的数组。示例:当 n=9 时,返回:您输入的区间 1-n 中素数分别是:[2, 3, 5, 7],总共是 4个素数!primeList = []import mathdef get…
题目描述
要求:设计一个算法,求 1~n(n 为大于 2 的正整数)中有哪些素数,总共是多少个素数?
根据上述计算规则,补全下列代码。
函数名:getPrime(n)
参数表:n -- n 为大于 2 的正整数。
返回值:返回素数组成的数组。
示例:当 n=9 时,返回:您输入的区间 1-n 中素数分别是:[2, 3, 5, 7],总共是 4个素数!
primeList = []
import math
def getPrime(n):
for x in range(2,n+1):
x_sqrt = ①
for prime in primeList:
if ②
primeList.append(x)
break
if ③
break
else:
primeList.append(x)
return primeList
m=int(input("请您输入一个整数 n:"))
print('您输入的区间 1-n 中素数分别是:'+ ④个素数!')
参考答案
primeList = []
import math
def getPrime(n):
for x in range(2,n+1):
x_sqrt = math.sqrt(x)
for prime in primeList:
if prime > x_sqrt:
primeList.append(x)
break
if x%prime==0:
break
else:
primeList.append(x)
return primeList
m=eval(input("请您输入一个整数 n:"))
print('您输入的区间 1-n 中素数分别是:'+str(getPrime(m))+',总共是'+str(len(primeList))+'个素数!')答案解析
评分标准:
① math.sqrt(x) 或等效答案;(4 分)
② prime > x_sqrt: 或等效答案;(3 分)
③ x%prime==0: 或等效答案;(3 分)
④ str(getPrime(m)) 或等效答案;(2 分)