题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值: String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入
180
输出
2 2 3 3 5
题解:
思路:180=2*2*3*3*5,而每个因数都是质数,质数是指除1和它本身以外,不能被其他数整除的数
注意:python3没有long类型,所以直接用默认的int类型就好
#coding=utf-8
#判断是否是质数
def isZhiShu(n):
for x in range(2,n):
if n%x==0:
return False
return True
#找因数
def getResult(ulDataInput):
n=ulDataInput
x=2
arr=[]
while x<=n:
if isZhiShu(x)==True and n%x==0:
n=n//x
arr.append(x)
x=2
else:
x+=1
return arr
if __name__=="__main__":
n=int(input())
arr=getResult(n)
#输出格式
for num in arr:
print(num,end=' ')
说明:
目前本King的代码能力只能按上述方式实现,后续有更好的方案,欢迎各位指点,也会不定期做修改~