My problem is to find the largest prime factor of 600851475143.
Code:
class Prime:
def isPrime(self,n): # Checks if number is prime
number=n
flag=0
#code to exclude 1 nd 2 from check
if number==1:
return False
elif number==2:
return True
#code to loop through and check if number is divisible
for i in range(2,(number/2)+1):
if (number)%i==0:
flag=1
break
else:
flag-0
continue
#code to return result
if flag==0:
return True
elif flag==1:
return False
But this code throws an overflow error - "OverflowError: range() result has too many items". What can I do to handle a big number?
I tried using n = int(raw_input())
as suggested in "Python long integer input",
but no luck!
def main():
p=Prime()
n = int(raw_input())
print p.isPrime(n)