from Crypto.Util.number import bytes_to_long, getPrime

flag = b'flag{REDACTED}'

p = getPrime(512)
q = getPrime(512)
n = p*q

e = 65537
phi = (p-1)*(q-1)
d = pow(e,-1,phi)

m = bytes_to_long(flag)
c = pow(m,e,n)
hint = p*e+q*d

print(f'{n = }')
print(f'{c = }')
print(f'{hint = }')

'''
n = 103508172397382996275609413532404916533907218297787012225327731862293015784015171618426905943746737686504677342029931560875500191762350443168917475986518409650576451206630755413360711147233492593056064323852120222235569402529603220548694929710258975458420395041468513676503172623143830404901342977795602221311
c = 41210323781017129243917602915750309673322974014919305574861250397568440838570664923564052683021191726392407141898159842518329491862141232215490884285286792562651877069301239716705318396361716232808843575113327117332870069595481053748542329832504182811862990014638806659888558745044506618782330364993074314262
hint = 851871686691802196492574308686011821285324942170955969930579579003297087633309749704665101652212026865612936148696517207543936113733903759107786432318998821897824961552290153025165576168917292775581124048637022651486557464921150216966484404749078023227293546907691217246710089828906565623306774389267705931924800983148700394638231816395436416167638248599191535492966852522466716207617583287457794467169871675878175028072456661527026628259874947339575053559830784
'''
