fork download
  1. # таблица для переворота цифр
  2. a = str.maketrans({'0': '0', '1': '1', '6': '9', '8': '8', '9': '6'})
  3.  
  4. # перевернуть число
  5. def b(x): return x.translate(a)[::-1]
  6.  
  7. # "приклеить" к числу его перевёрнутое представление
  8. def c(x): return x + b(x)
  9.  
  10. # перевести число в 5-чную систему с цифрами: 0, 1, 6, 8, 9
  11. def d(x):
  12. if x == 0: return '0'
  13. t = '01689'
  14. res = []
  15. while x != 0:
  16. res.append(t[x % 5])
  17. x //= 5
  18. return ''.join(reversed(res))
  19.  
  20. # закодировать число, чтобы при перевороте оно не менялось
  21. def e(x): return c(d(x))
  22.  
  23. # генерирует эти числа от m-го до n-го
  24. def f(m, n): return (e(i) for i in range(m, n))
  25.  
  26. # тест
  27. print(*f(0, 100), sep = "\n")
  28.  
Success #stdin #stdout 0.02s 27704KB
stdin
Standard input is empty
stdout
00
11
69
88
96
1001
1111
1691
1881
1961
6009
6119
6699
6889
6969
8008
8118
8698
8888
8968
9006
9116
9696
9886
9966
100001
101101
106901
108801
109601
110011
111111
116911
118811
119611
160091
161191
166991
168891
169691
180081
181181
186981
188881
189681
190061
191161
196961
198861
199661
600009
601109
606909
608809
609609
610019
611119
616919
618819
619619
660099
661199
666999
668899
669699
680089
681189
686989
688889
689689
690069
691169
696969
698869
699669
800008
801108
806908
808808
809608
810018
811118
816918
818818
819618
860098
861198
866998
868898
869698
880088
881188
886988
888888
889688
890068
891168
896968
898868
899668