Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enc = 19680371928191389865779839985791596167665873169713320020521150351814544808795290799819143739285034284618916611967016738463398067633445648709977850622867289722372596963247707263439220754822048132943713516661678425983400991090507601151379737471045664186065701334581916822015055797618213572309286829285344833292619972478164124966
- e = 968652731
- n = 102540217756563657047332566955337115791446221732625727452582331508051620795222012389711690721710744258138643196665107838857343318370676047259451056400766716545743614936642796054577351416225937660442147520898979450408123775720780029305387983864387834538862252970711456364395296680415434192049384435099401099371935534988486952679
- def fermat(n,k):
- bits=(len(bin(n))-2)
- bits=bits//2+bits%2
- l=bits-k
- #4 value of a is narrowwed down to a1, a2
- a1=2^(k-2)+2^(l-2)-10^4
- a2=-2^(k-2)+2^(l-2)-10^4
- while 1:
- if is_square(a1^2+n):
- print sqrt(n+a1^2)+a1
- break
- if is_square(a2^2+n):
- print sqrt(n+a2^2)+a2
- break
- a1+=1
- a2+=1
- class Timeout():
- """Timeout class using ALARM signal."""
- class Timeout(Exception):
- pass
- def __init__(self, sec):
- self.sec = sec
- def __enter__(self):
- signal.signal(signal.SIGALRM, self.raise_timeout)
- signal.alarm(self.sec)
- def __exit__(self, *args):
- signal.alarm(0) # disable alarm
- def raise_timeout(self, *args):
- raise Timeout.Timeout()
- for i in range(256,1,-1):
- try:
- with Timeout(3):
- fermat(n,i)
- except:
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement