image

编辑人: 沉寂于曾经

calendar2025-05-10

message7

visits510

2024月03月Python四级实操参考答案

一、编程题

1、数的分解

给出一个正整数 a,要求分解成若干个正整数的乘积,即 a=a1×a2×a3×... ×an,并且 1<a1≤a2≤a3≤...≤an,问这样分解的种类有多少。注意到 a=a 也是一种分解。

例如,8 可以分解成 8=2*2*2,8=2*4,8=8 总共 3 种。

代码如下,完善划线处的代码:

def fun(x, y=2):

    if x == 1:

        global ans

       

    for i in range(y, x+1):

        if :

            fun(x//i,i)

lst = [2, 8, 9, 20] #测试数据

for i in lst:

    ans = 0

   

    print(ans)

程序运行结果如下:

1

3

2

4

参考答案:1. 在①处填写的代码为:`ans += 1`。2. 在②处填写的代码为:`x % i == 0`。3. 在③处填写的代码为:`fun(i)`。


2、购物组合

小明单位发了 100 元的购物卡,小明到超市买三类洗化用品:洗发水(15 元)、香皂(2 元)、牙刷(5 元)。要把 100 元正好花掉,可有哪些购买组合?

def gouwu(money):

    for i in range(0,money//15+1):

        for j in range(0,money//2+1):

            for k in range(0, ):

                if :

                    print('可选择的购买组合:\t 购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format( ))

gouwu(100)

参考答案:① 25② i*15 + j*2 + k*5 <= 100③ i, j, k


3、回文素数

回文素数是指一个不小于 11 的自然数 n 从左向右和从右向左读,其结果值相同且是素数,即称 n 为回文素数。一种求解的方法是先判断一个自然数是否为回文数,再判断它是否为素数。如果两个判断都成立,则该自然数是回文素数。请补全代码,找出自然数 1000 以内的所有回文素数。

#判断是否为素数

def  (n):

    for i in range(2,n):

        if  :

            break

    else:

        return True

#判断是否为回文数

def HuiWenShu(n):

    n=str(n)

    if n==  :

        return True

    else:

        return False

for i in range(11,1001):

    if ZhiShu(i)==True  :

        print('{}是回文素数!'.format(i))

参考答案:1. 函数①应命名为`ZhiShu`,表示判断是否为素数。2. 在函数①中,条件②应为`n % i == 0`,表示判断n是否能被i整除。3. 函数③中,应使用`n==n[::-1]`,表示判断n是否为回文数。4. 在for循环中,条件④应为`and HuiWenShu(i)`,表示只有当i既是素数又是回文数时,才输出i是回文素数。因此,完整的代码为:```pythondef ZhiShu(n):for i in range(2, n):if n % i == 0:breakelse:return Truedef HuiWenShu(n):n = str(n)return n == n[::-1]for i in range(11, 1001):if ZhiShu(i) and HuiWenShu(i):print('是回文素数!'.format(i))```


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2024月03月Python四级实操参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share