import gmpy2 from sympy import nextprime from Crypto.Util.number import * n = 119089874014927074688341672884508166875005676500322264758691717600758737133958853429775347698400246542956663932584349274109281162512900740554148968627493442686180696496512753102593837838697028745592258709705875168834908314583594102947493349091661801379830005354833653565157987808629144151353148601181998243399 cipher = 117095409962662175082351896808794751507022710425611245694723238077959955609489552866653772250169627679450018400780468195080203740614508425379908667955368095074633690882446901510961333353751345467769557765781287285368700648236247094896521401160296460446518097963846290488354458277094831166588801569124630935182 e = 65537 root = gmpy2.iroot(n,2)[0] q = nextprime(root) print(n % q) p = n // q phi = (p - 1) * (q - 1) d = inverse(e, phi) plaintext = pow(cipher, d, n) print(long2str(plaintext))