from gmpy2 import *
from Crypto.Util.number import *
from uuid import uuid4
import random

flag = "flag{" + str(uuid4()) + "}"
print(flag)
pt = bytes_to_long(flag.encode())
e = 65537 << 4
# print(e // 65537)
def getmyprime(bit):
    while True:
        a = random.getrandbits(bit-2)
        p = 4 * a + 3
        if isPrime(p):
            return p


p = getmyprime(256)
q = getmyprime(256)
r = getmyprime(256)
s = getmyprime(256)


n = p * q * r * s
ct = pow(pt, e, n)
print("最大公因数：", gcd(e, (p - 1) * (q - 1) * (r - 1) * (s - 1)))
print("p =", p)
print("q =", q)
print("r =", r)
print("s =", s)
print("ct =", ct)



'''
p = 52422530353062237701049766700758290753760741218584617696202165436435945548779
q = 73587958582711192545620173640651831661334658634186062105530360928110736463979
r = 18802950065093203880462134501728259512922582655586839741017760978309385635111
s = 67269415591498763228702900529068791749234991976857322064319402525861709343187
ct = 4448091925469096128068885100781363182770716164621345138110800781463583645604601074359479867405570427757659265270005212008739526641120214624390515483386638617312015652637296539797410174836497599067284286827607368418935274414553340354052637307884036774512146783697275824973418837479154090897687904529294888249
'''

