分解質數
#將一個正整數分解質因數。例如:輸入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