pre_exam exercise 3

>>> 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)

 

Guess you like

Origin www.cnblogs.com/eleni/p/11314459.html