import math
class Solution(object):
def getFactors(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
retList = []
if not n:
return []
self.solve(n, retList, [], 2)
return retList
#return self.solve([], n, [], 2)
'''
def solve(self, ret, n, sofar, start):
if sofar:
ret.append(sofar + [n])
#print 'ret: ', ret
for i in range(start, int(math.sqrt(n))+1):
if n % i == 0:
#print 'sofar: ', sofar + [i]
self.solve(ret, n/i, sofar+[i], i)
return ret
'''
def solve(self, n, retList, curList, start):
if curList:
# both of these works
#retList += [curList[:] +[n]]
retList += [curList + [n]]
#print 'retList: ', retList
for i in xrange(start, int(math.sqrt(n)) + 1):
if n % i == 0:
#curList += [i]
self.solve(n/i, retList, curList + [i], i)
#curList.pop()