Range is too large Python

前端 未结 6 1434
逝去的感伤
逝去的感伤 2020-12-08 21:39

I\'m trying to find the largest prime factor of the number x, Python gives me the error that the range is too large. I\'ve tried using x range but I get an OverflowError: Py

6条回答
  •  情书的邮戳
    2020-12-08 22:12

    Very uneficient code, that's not the best way of getting dividers, I've done it with a for and range, but I can't execute it because of the long variables, so I decided to implement it with a for using a while, and increment a counter by myself.

    For 32 bit int like 13195:

    # The prime factors of 13195 are 5, 7, 13 and 29.
    # What is the largest prime factor of the number 600851475143 ?
    
    i = 13195
    for j in xrange(2, i, 1):
        if i%j == 0:
            i = i/j
            print j
    

    Good way for longer numbers:

    # The prime factors of 13195 are 5, 7, 13 and 29.
    # What is the largest prime factor of the number 600851475143 ?
    
    i = 600851475143
    j = 2
    
    while i >= j:
        if i%j == 0:
            i = i/j
            print j
        j = j+1
    

    The last prime is the last printed value.

提交回复
热议问题