功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
最后一个数后面也要有空格
num = int(input())
def division(num):
for i in range(2, num + 1):
if num % i == 0:
print(str(i), end=' ')
num = num // i
division(num)
break
else:
return
division(num)
以上代码从2到num遍历,效率低,可改进为:
num = int(input())
def division(num):
for i in range(2,int(num**0.5+2)):
if num % i == 0:
print(str(i), end=' ')
num = num // i
division(num)
break
else:
print(str(num), end=' ')
division(num)