今天进行python的小测试

7-1 找出一个整数的所有素因子
分数 20
作者 季江民
单位 浙江大学

编写程序读取一个整数,然后显示它所有的最小因子,也称之为素因子。

例如:如果输入整数为150, 那么输出应该如下:2,3,5,5

输入格式:

在一行中输入一个整数。

输出格式:

在一行输出所有的素因子,以逗号分隔。

输入样例:

150

输出样例:

2,3,5,5
def find_prime_factors(n):
    factors = []
    # 先处理掉2的因子
    while n % 2 == 0:
        factors.append(2)
        n = n // 2
    # 处理奇数因子
    for i in range(3, int(n**0.5) + 1, 2):
        while n % i == 0:
            factors.append(i)
            n = n // i
    # 如果n是一个大于2的素数
    if n > 2:
        factors.append(n)
    return factors

# 读取输入
number = int(input())

# 找到所有的素因子
prime_factors = find_prime_factors(number)

# 输出素因子,以逗号分隔
print(",".join(map(str, prime_factors)))
7-2 四则运算(用字典实现)
分数 20
作者 陈春晖
单位 浙江大学

四则运算(用字典实现),比较c语言的switch语句。

输入格式:

在一行中输入一个数字
在一行中输入一个四帜运算符(+,-,*,/)
在一行中输入一个数字

输出格式:

在一行中输出运算结果(小数保留2位)

输入样例1:

在这里给出一组输入。例如:

7
/
3

输出样例1:

在这里给出相应的输出。例如:

2.33

输入样例2:

在这里给出一组输入。例如:

10
/
0

输出样例2:

在这里给出相应的输出。例如:

divided by zero


def calculate():
    # 获取输入
    num1 = float(input())
    operator = input().strip()
    num2 = float(input())
    
    # 定义四则运算的函数
    def add(a, b):
        return a + b
    
    def subtract(a, b):
        return a - b
    
    def multiply(a, b):
        return a * b
    
    def divide(a, b):
        if b == 0:
            return "divided by zero"
        else:
            return a / b
    
    # 用字典实现四则运算
    operations = {
        '+': add,
        '-': subtract,
        '*': multiply,
        '/': divide
    }
    
    # 获取运算结果
    if operator in operations:
        result = operations[operator](num1, num2)
        if isinstance(result, str):  # 检查是否是错误信息
            print(result)
        else:
            print(f"{result:.2f}")
    else:
        print("Invalid operator")

# 调用函数进行计算
calculate()
7-3 计算各对应位乘积之和
分数 20
作者 陈春晖
单位 浙江大学

读入两个整数a和b,输出绝对值a和绝对值b的各对应位乘积之和,如a=1234,b=608,则输出值为:“1×0+2×6+3×0+4×8“的值,即44。

输入格式:

在一行中输入两个数

输出格式:

在一行中输出对应位乘积之和

输入样例:

在这里给出一组输入。例如:

1234 608

输出样例:

在这里给出相应的输出。例如:

44


# 读取输入
input_str = input()
a_str, b_str = input_str.split()

# 转换成绝对值字符串
a_str = str(abs(int(a_str)))
b_str = str(abs(int(b_str)))

# 逆序对齐,并补齐短的那个数
if len(a_str) < len(b_str):
    a_str = a_str.zfill(len(b_str))
else:
    b_str = b_str.zfill(len(a_str))

# 初始化结果
result = 0

# 逐位计算乘积之和
for i in range(len(a_str)):
    result += int(a_str[i]) * int(b_str[i])

# 输出结果
print(result)

 

posted on 2024-05-29 08:30  许七安gyg  阅读(7)  评论(0编辑  收藏  举报
$(document).ready(function() { // 禁止右键 $(document).bind("contextmenu", function(){return false;}); // 禁止选择 $(document).bind("selectstart", function(){return false;}); // 禁止Ctrl+C 和Ctrl+A $(document).keydown(function(event) { if ((event.ctrlKey&&event.which==67) || (event.ctrlKey&&event.which==86)) { //alert("对不起,版权所有,禁止复制"); return false; } }); });