话题
描述
功能:输入一个正整数牛客网编程题输入输出,按升序输出其所有素因数(重复的也会列出)(例如180的素因数是2 2 3 3 5 )
最后一个数字后也应该有一个空格
输入说明:
输入一个长整数
输出说明:
按升序打印其所有素数的因数,以空格分隔。最后一个数字之后也应该有一个空格。
示例 1
进入:
180
输出:
2 2 3 3 5
解决问题的想法
前言:如果一个数不是素数,那么它必须表示为两个数的乘积(除了1和它自己),并且这两个数的平方根必须小于或等于它。
思路:while循环,按照前言,只需要循环到根数num,当它可以整除时牛客网编程题输入输出,输出素数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
参考
华为电脑试题库
© 版权声明
THE END
喜欢就支持一下吧
请登录后发表评论
注册
社交帐号登录