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

A37231. 编写程序,实现分段函数的计算, 分段函数的取值如下表所示。 要求: 可连续输入 5 次(也就是输入 5 个 x 值, 求出对应的 y 值) , 根据对应的表达式求出 y 值之后, 将结果转化成整数添加到列表 a 中。 请判断存在于列表 a 中的 5 个元素是否为素数, 如果为非素数则转化成元组之后存在 b1 中, 如果是素数则转换成元组之后存放在 b2 中, 分别输出 b1、 b2中非素数和素数…

填空题 困难

题目描述

编写程序,实现分段函数的计算, 分段函数的取值如下表所示。 要求: 可连续输入 5 次(也就是输入 5 个 x 值, 求出对应的 y 值) , 根据对应的表达式求出 y 值之后, 将结果转化成整数添加到列表 a 中。 请判断存在于列表 a 中的 5 个元素是否为素数, 如果为非素数则转化成元组之后存在 b1 中, 如果是素数则转换成元组之后存放在 b2 中, 分别输出 b1、 b2中非素数和素数的元素及元素个数。

a = []

a1 = []# 暂时存储非素数的值

a2 = []# 暂时存储素数的值

b1 = ()

b2 = ()

for i in range(5):

    x = int(input("输入 x="))

if x < 0:

y = 0

elif 0 <= x < 5:

y = x

elif 5 <= x < 10:

y = 3 * x - 5

elif 10 <= x < 20:

y = 0.5 * x - 2

elif x >= 20:

y = 2 * x

_____①_____

for i in a:

if i == 0 or i == 1:

_____②_____

else :

flag = True

for j in range(2, i):

if i % j == 0:

_____③_____

break

if _____④_____:

a2.append(i)

else :

a1.append(i)

b1 = tuple(a1)

b2 = tuple(a2)

print("非素数的个数有" + str(len(b1)) + "个,", "非素数为: ", b1)

print("素数的个数有" + str(len(b2)) + "个,", "素数为: ", b2)

参考答案

a = [] a1 = []# 暂时存储非素数的值 a2 = []# 暂时存储素数的值 b1 = () b2 = () for i in range(5): x = int(input("输入 x=")) if x < 0: y = 0 elif 0 <= x < 5: y = x elif 5 <= x < 10: y = 3 * x - 5 elif 10 <= x < 20: y = 0.5 * x - 2 elif x >= 20: y = 2 * x a.append(int(y)) for i in a: if i == 0 or i == 1: a1.append(i) else : flag = True for j in range(2, i): if i % j == 0: flag = False break if flag == True: a2.append(i) else : a1.append(i) b1 = tuple(a1) b2 = tuple(a2) print("非素数的个数有" + str(len(b1)) + "个,", "非素数为: ", b1) print("素数的个数有" + str(len(b2)) + "个,", "素数为: ", b2)

答案解析

评分标准:

(1) a.append(int(y)); (2 分)

(2) i==0 or i==1; (2 分)

(3) flag=False; (3 分)

(4) flag==True。 (3 分)

上一题 下一题