学习python,每日练习0530

分解质数

#将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

#定义一个方法判断这个数是否是素数
def isPrime(num):
    flag = 0
    if(num == 2):
        return True
    else:
        for i in range(2 , num // 2 +1):
            if num % i == 0:
                flag = 1
                break
        if flag == 0:
            return True
        else:
            return False


#定义num 用于接收输入的数字
#定义result 用于接收分解的质因子

num = int(input("请输入一个数字:"))
result = []
#首先判断是否是质因子,如果是直接输出结果
if isPrime(num):
    result = [1,num]
else:
    for i in range(2,num // 2+1):
        #只对质数求余数
        if isPrime(i):
            #对同一个质数反复求余,直到商对于此质数不能整除(会将每轮求余数的商赋值给num)
            while (num % i == 0):
                num = num // i
                result.append(i)
                if isPrime(num):
                    result.append(num)
                    break
print(result)
结果:
请输入一个数字:1800
[2, 2, 2, 3, 3, 5, 5]

桃子数量


'''
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少
我们假设第n+1的桃子数量为i.那么第n天的桃子数量则为:(i+1)*2,因此需要循环9次就可以得到桃子总数
'''
num = 1
for i in range(1,10):
    num = (num+1)*2

print(num)

结果:
1534


矩阵

'''
题目:两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:

X = [[12,7,3],
    [4,5,6],
    [7,8,9]]
 
Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]
    
'''
X = [[12, 7, 3],
     [4, 5, 6],
     [7, 8, 9],]

Y = [[5, 8, 1],
     [6, 7, 3],
     [4, 5, 9]]
temp = []
Z = []

for i in range(0,len(X)):
    temp = []
    for j in range(0,len(X[i])):
        temp.append(X[i][j]+Y[i][j])
    Z.append(temp)

print(Z)

结果:
[[17, 15, 4], [10, 12, 9], [11, 13, 18]]

题目来源链接:https://fishc.com.cn/forum.php?mod=viewthread&tid=84762&ctid=588

你可能感兴趣的:(每日一题)