tmp_result = dict()
prime_numbers = [2,3]
prime_index = 0
def getPrime(i: int) -> str:
global tmp_result,prime_numbers,prime_index
if i == 0:
tmp = list(map(str,random.choices(prime_numbers,k=random.randrange(3,13))))+['0']
random.shuffle(tmp)
tmp = f"0={'*'.join(tmp)}"
tmp = tmp.replace('*','\\*')
return tmp
elif i == 1:
return "????????(+?+)"
def _judgePrime(kr: list, ss: int):
ll = math.floor(math.sqrt(ss))
for oo in kr:
if ss % oo == 0:
return
elif oo > ll:
return False
def _updatePrime():
dx = prime_numbers[-1]+2
while _judgePrime(prime_numbers,dx):
dx += 2
prime_numbers.append(dx)
return
def _handle(ii: int) -> None:
global prime_index
kk = math.floor(math.sqrt(ii))
ww = prime_numbers[prime_index]
if ii == 1:
return
if ii == ww:
if ii in tmp_result:
tmp_result[ii] += 1
else:
tmp_result.update({ii:1})
return
while ii%ww:
if ww > kk:
if ii in tmp_result: # ????????
tmp_result[ii] += 1
else:
tmp_result.update({ii:1})
return
else:
prime_index += 1
if prime_index == len(prime_numbers):
_updatePrime()
ww = prime_numbers[prime_index]
_handle(ww)
_handle(ii//ww)
_handle(i)
res = f'{i}={"*".join([f"{k}^{v}^" for k, v in tmp_result.items()])}'
res = res.replace('*','\\*').replace('^1^','')
tmp_result.clear()
prime_index = 0
return res