fermat_factor.py

from sage.all import *
import argparse

def fermat_factor(n): 
    tmin = floor(sqrt(n))+1

    for a in range(tmin,n):
       b = sqrt(a*a - n)
       if floor(b) == b :
            return ([a+b,a-b])
       
    return ([0,0])

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Fermat factorization method')
    parser.add_argument('-n', '--number', help='Number to factorize', required=True)
    args = parser.parse_args()
    n = int(args.number)
    print(fermat_factor(n))