olympiad_problem

problem

Введем понятие "производного числа Y для числа X" - это число Y равное сумме числа X и сумме его цифр, например: 147 => 147 + 1 + 4 + 7 = 159. Производное число можно вычислить для любого неотрицательного числа. Есть понятие "генератор числа X для числа Y" - это число X, сумма которого с его цифрами равна числу Y, например: 159 => 147. Генератор числа существует не для любого неотрицательного числа. Те числа, для которых не существует числел генераторов называются "самопроизводными числами", например: 143. Таких чисел примерно на один порядок меньше.

Необходимо вывести на последовательности чисел от 0 до 10^9 признак является ли число самопроизводным (True) или генератором (False).

Ограничение по времени 1 сек, по памяти 16 Мб.

example output

N: 10000000
P: 9022267
SP: 977796
P + SP: 10000063
Unique terms: {'2:1', '28:1', '15:1', '11:9', '54:1', '41:1', '11:5', '2:4', '11:7', '11:6', '11:8'}
Frequency dictionary: Counter({'2:1': 90000, '11:9': 80002, '11:8': 18000, '15:1': 9000, '11:7': 1800, '28:1': 900, '11:6': 180, '41:1': 90, '11:5': 18, '54:1': 9, '2:4': 2}) 
    (2, 80002, 90000, 18000, 9000, 1800, 900, 180, 90, 18, 9) 
    18181.909090909092
Compress [6] str:  kb9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m8laiji9o9n9m9lk
{'2:1': 'a', '11:9': 'b', '11:8': 'c', '15:1': 'd', '11:7': 'e', '28:1': 'f', '11:6': 'g', '41:1': 'h', '11:5': 'i', '54:1': 'j', '2:4': 'k', 'ab': 'l', '8lacdc': 'm', '9m8laefe': 'n', '9n9m8laghg': 'o'}
10000060
[Finished in 18.8s]