>>> single_factors(2)
2
>>> single_factors(4096) # 4096 == 2**12
2
>>> single_factors(85) # 85 == 5 * 17
85
>>> single_factors(10440125) # 10440125 == 5**3 * 17**4
85
>>> single_factors(154) # 154 == 2 * 7 * 11
154
>>> single_factors(52399401037149926144) # 52399401037149926144 == 2**8 * 7**2 * 11**15
154
DEF single_factors (Number): dic_number = {} for I in Range (2, Number + 1): # this must be added a result, otherwise when the factor a prime number returned only 1 the while Number% I == 0: dic_number [ I] = dic_number.get (I, 0) + 1'd Number = I // Number # use // can greatly save waiting time, because the operation target certificate is no longer float IF Number ==. 1 : BREAK Final . 1 = for m in dic_number.keys (): Final = Final * m return Final A=single_factors(52399401037149926144) print(a)