def carmichael_fact(n): #calc lambda(p1**a1 ... pn**an) pfd = pfactordecomp(n) if len(pfd) == 1: return carmichael_1fact(pfd[0][0],pfd[0][1]) else: lambda_list = [] for fact in pfd: lambda_list.append(carmichael_1fact(fact[0],fact[1])) mult = lambda_list[0] for i in range (1,len(lambda_list)): mult = lcm(mult,lambda_list[i]) return mult
@author: Trader ''' from PE003_Largest_Prime_Factor import pfactordecomp #didn't finish first time... try again #i=999, tri_num=499500 #i=1900 1805950 #2900 4206450 #5000 12502500 tri_num = 49009950 max_prod = 0 for i in range(9900+1,20000): prod = 1 tri_num += i pfd = pfactordecomp(tri_num) for factor in pfd: prod = prod * (1+factor[1]) if prod > max_prod: max_prod = prod if prod > 500: print i, tri_num break if i%100 == 0: print '\n' print i, tri_num, max_prod print pfd print prod