완성된 식을 계산한 결과 '원래 수를 거꾸로 나열한 숫자'가 되는 것을 생각해보겠습니다. 또한, 계산 순서는 수학에서 통용되는 순서로 합니다.(곱셈과 나눗셈 먼저 덧셈과 뺼셈은 나중)
100 ~ 999의 경우 다음 세 가지가 있습니다.
351 -> 3*51 = 153
621 -> 6*21 = 126
886 -> 8*86 = 688
import re
op = ["*", ""]
len_op = len(op)
for i in range(1_000, 10_000):
c = str(i)
for j in range(0, len_op):
for k in range(0, len_op):
for l in range(0, len_op):
val = c[3] + op[j] + c[2] + op[k] + c[1] + op[l] + c[0]
# 0으로 시작하는 숫자가 있는지 확인하고
# 있는 경우 제거
val = re.sub(r"0(\d+)", r"\1", val)
# 연산자를 하나는 넣는 경우
if len(val) > 4:
if i == eval(val):
print(val, "=", i)