测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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 分)

上一题 下一题