37,720
社区成员
发帖
与我相关
我的任务
分享
suyinzi =[]
def isprime(number):
count = number // 2
while count > 1:
if number % count == 0:
return False
count -= 1
else:
return True
def getfactors(integer):
count = 1
factor = []
while count <= integer:
if integer % count == 0:
factor.append(count)
count += 1
else:
return factor
def prime_factors(integer):
allfactors = getfactors(integer)
max_primefactors = max([x for x in allfactors if isprime(x)])
factor = int(integer / max_primefactors)
suyinzi.append(max_primefactors)
if isprime(factor):
suyinzi.append(factor)
return suyinzi
else:
return prime_factors(factor)
if __name__ == '__main__':
print(getfactors(20))
print(prime_factors(20))
def isprime(num):
count = num / 2
while count >1:
if num % count == 0:
return False
break
else:
count -= 1
else:
return True
def getfactor(num):
l = []
if isprime(num):
return [num]
count = num / 2
for n in range(2, count + 1):
if num % n == 0 and isprime(n):
l.append(n)
return l
def suyinzi(num):
fac = getfactor(num)
mul = 1
for n in fac:
mul *= n
if mul == num:
return fac
else:
return fac + suyinzi(num / mul)
print suyinzi(20)