题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
n = int(input()) #输入需要求因子的数字 yz = [] #因子的列表 i = 2 #因数从2开始 while i*i <= n: #因数的范围 while n%i == 0: #n可以被i整除时 yz.append(i) #将i加入因数列表 n = n//i #n变成被整出后的数 i += 1 #不能整除时,i加1 if n > 1: #如果最后n是质数时 yz.append(n) #将n加入因数范围 print(' '.join(map(str,yz))) #输出因数
本题难度思路见解析!
注意:
1.不能忘记9,10行代码,如果n最终大于1说明n本身是一个质数,加入因数列表
2.第七行除法需要使用//表示整除,得到的数字为整数;如果使用/得到的为浮点数,最后一个因数输出时会产生小数点后一位
3.第11行输出语句分解:map(str,xx)生成一个迭代器,里面是xx中的数值;" ". join( ) 将引号中的内容加入迭代器中用于分割元素。简单的输入写法还可以写成:
for _ in yz:
print(_, end = " ")
在print内容后面加,end= " " 就可以在输出内容后不自动换行,而在输入内容后添加双引号中的内容。由此来保证在光标仍在同一行