题解 | 质数因子

质数因子

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= " " 就可以在输出内容后不自动换行,而在输入内容后添加双引号中的内容。由此来保证在光标仍在同一行

全部评论

相关推荐

每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
05-12 16:04
已编辑
江西财经大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务