编程题

编写程序,实现分段函数的计算,分段函数的取值如下表所示。要求:可连续输入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         ②        :

       a1.append(i)

    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)

查看答案
赣ICP备20007335号-2