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)
 
    