import gmpy2
from Crypto.Util.number import *
nbits = 1024
p = getPrime(nbits)
q = getPrime(nbits)
e = 65537
n = p*q
phi = (p-1)*(q-1)
d = gmpy2.invert(e, phi)
pinv = gmpy2.invert(p, q)
qinv = gmpy2.invert(q, p)
flag = "********************"
m = bytes_to_long(flag)
c = pow(m, e, n)
print(e)
print(phi)
print(c)
print(pinv)
print(qinv)
#e=65537
#phi=16214196677409842191749663213231966223463566653203568400729814072064956461861752278166553612908715656550967320972074537503601239318720270129995303074646212737965783268459229106835490417712668363359171821708318720809832159572282727511389992615663441511503229704750580492198821606998317710868668828833141425196622473234579399775579260766468635789016596133769105704618517033189110246711345632295573082254981344927876365625171289065905073217354890942522382600791119629881635451001620199711984737382369947788979240377635737790856929955955970018372806837656838074878040088010958855603338894383834400898168898618138035821760
#c=10604018404112829207653109426421330872764960317584135942976846332774968746963495249471791454332018210024138118402034077993086458923434620824648601296546049400784253605007345552068039256920909136573149623993650033977431024066666079287398686091212994858934967000073682790106585918576271349858494852312801806759693201090168582692590718584072906358808826192436677670097858207614448463997654563107791219248280328276122250827703702624009318075976748693174206978841677406243656787173843544323747984786489504681386107186529318709829786795782849615751624805732251794730394312662114841018929734575979077218728057604916282584549
#pinv=41227525122641731027803576353121502216886898566530090754910822233885820938630571029851581473120591477480350097934822292149235531143326884563227004577488643415686764380038498101774124058390324990260637107448524600734605221941232886887041892234469421509329336000703903447902913943927720581260808815020884284053
#qinv=96682167531431432828019735553573344641300497261009819846367358362042455665591587442956765031952285358537009209824632767606759833549222627721046066423193573378463757319043876813146540965827319020631984549384593998428481208271733978137361346913047429919163939654471574485561505945941232191428058440607575906773