Andy1216 @ 2022-12-30 11:06:53
#把一个n进制列表转为10进制数
def solve(a):
s=0
for i in range(len(a)):
s+=a[i]*n**(len(a)-1-i)
return s
#把一个10进制数转化为n进制列表
def resolve(b):
x=[]
while b:
a=b%n
x.append(a)
b=b//n
x.reverse()
return x
#判断回文数,用列表
def ishui(k):
c=len(k)
s=0
for i in range(0,c):
if k[i]==k[c-1-i]:
s+=1
if s==c:
return 0
else:
return 1
n=int(input())
m1=input()
m=[int(m1[i]) for i in range(len(m1))]
#考虑在n进制下进行m的回文操作
#相加操作,直到生成回文数
#需要构建判断回文数的东西,这个应该是要轻车熟路了
#相加操作
pt=0
while ishui(m):
if pt>=30:
print('Impossible!')
break
m=resolve(solve(m)+solve(list(reversed(m))))
pt+=1
if pt<30:
print('STEP=%d'%pt)