學習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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章