描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
数据范围:
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
思路:
对于合数来说:质因数>=2且<=自身的平方根,因此遍历时,只需要遍历到自身平方根即可,之后用该合数除以遍历到的数,得到的数值继续重复操作。其中,每遍历一个数,就打印,并且用空格隔开;
对于质数来说,因子就是1和它本身。因为质数从2开始,所以对于这类数,只要>=2打印即可;
step1:输入一个正整数;
step2:从2到自身平方根开始遍历,当自身可以整除遍历到的数时,打印遍历到的数,并用空格隔开,同时将整除完的数字重复遍历,直至循环结束;
step3:对于质数,只要>=2打印即可
代码如下:
n = int(input())
for i in range(2,int(n**0.5)+1):
while n%i == 0:
print(i,end=' ')
n = int(n/i)
if n >= 2:
print(n)