Днями я придумав серію номерів і вирішив перевірити, що це за номер OEIS. На мій подив, ця послідовність виявилася не в базі даних OEIS, тому я вирішив назвати послідовність після себе (зауважте, хтось інший, який набагато розумніший за мене, напевно, вже придумав це, і якщо хтось знайде фактична назва цієї послідовності, будь ласка, прокоментуйте, і я зміню назву питання). Оскільки я не міг ніде знайти послідовності, я вирішив назвати його після себе, звідси "Числа Грифона". EDIT: Завдяки @Surb за те, що він звернув до мене увагу на те, що ця послідовність дорівнює OEIS-послідовності A053696 - 1.
Число Грифона - це число форми , де обидва і - цілі числа, більші або рівні два, а послідовність Грифона - це набір усіх чисел Грифона в зростанні замовлення. Якщо існує кілька способів утворення числа Грифона (перший приклад - 30 , що є і 2 + 2 ^ 2 + 2 ^ 3 + 2 ^ 4, і 5 + 5 ^ 2 ), число підраховується лише один раз у послідовності. Перші кілька грифонових чисел: 6, 12, 14, 20, 30, 39, 42, 56, 62, 72 .
Ваше завдання:
Напишіть програму або функцію, яка отримує ціле число як вхід і виводить е число грифона.
Вхід:
Ціле число від 0 до 10000 (включно). Ви можете трактувати послідовність як 0-індексованою, так і 1-індексованою, залежно від того, що вам зручніше. Будь ласка, вкажіть, яку систему індексації ви використовуєте у своїй відповіді, щоб уникнути плутанини.
Вихід:
Число Грифона, що відповідає входу.
Випробування:
Зверніть увагу, що це передбачає, що послідовність є 0-індексованою. Якщо ваша програма передбачає 1-індексовану послідовність, не забудьте збільшити всі вхідні номери.
Input: Output:
0 ---> 6
3 ---> 20
4 ---> 30
10 ---> 84
99 ---> 4692
9999 --> 87525380
Оцінка:
Це код-гольф , тому найнижча оцінка в байтах виграє.