題目
描述
功能:輸入一個(gè)正整數(shù),按照從小到大的順序輸出它的所有質(zhì)因子(重復(fù)的也要列舉)(如180的質(zhì)因子為2 2 3 3 5 )
最后一個(gè)數(shù)后面也要有空格
輸入描述:
輸入一個(gè)long型整數(shù)
輸出描述:
按照從小到大的順序輸出它的所有質(zhì)數(shù)的因子筋岛,以空格隔開(kāi)尊剔。最后一個(gè)數(shù)后面也要有空格十减。
示例1
輸入:
180
輸出:
2 2 3 3 5
解題思路
前言:如果一個(gè)數(shù)不是質(zhì)數(shù)宗弯,那么它一定可以表示成兩個(gè)數(shù)(除了1和它本身)相乘痒玩,這兩個(gè)數(shù)必然有一個(gè)小于等于它的平方根淳附。
思路:while循環(huán),根據(jù)前言只需要循環(huán)到根號(hào)num蠢古,當(dāng)能整除時(shí)奴曙,輸出質(zhì)因子i,并更新num值草讶,重置i=1洽糟,
>>>num = 10
>>>num%2
0
>>>num%3
1
代碼
while True:
? ? try:
? ? ? ? num = int(input())
? ? ? ? i = 1
? ? ? ? while num > i*i:
? ? ? ? ? ? i = i + 1
? ? ? ? ? ? if num%i==0:
? ? ? ? ? ? ? ? num = int(num/i)
? ? ? ? ? ? ? ? print(i, end=" ")
? ? ? ? ? ? ? ? i = 1
? ? ? ? print(num, end=" ")
? ? except:
? ? ? ? break
Reference
https://www.nowcoder.com/ta/huawei/