Квадратні числа - це ті, які мають вигляд, n^2
де n - ціле число. Вони також називаються ідеальними квадратами, тому що, коли ви берете їх квадратний корінь, ви отримуєте ціле число.
Перші 10 квадратних чисел: ( OEIS )
0, 1, 4, 9, 16, 25, 36, 49, 64, 81
Трикутні числа - це числа, які можуть утворювати рівносторонній трикутник. Число n-го трикутника дорівнює сумі всіх натуральних чисел від 1 до n.
Перші 10 трикутних чисел: ( OEIS )
0, 1, 3, 6, 10, 15, 21, 28, 36, 45
Квадратні трикутні числа - це числа, які є як квадратними, так і трикутними.
Перші 10 квадратних трикутних чисел: ( OEIS )
0, 1, 36, 1225, 41616, 1413721, 48024900, 1631432881, 55420693056, 1882672131025, 63955431761796
Існує нескінченна кількість квадратних чисел, трикутних чисел і квадратних трикутних чисел.
Напишіть програму або названу функцію, яка задає вхідне (параметр або stdin) число n
, обчислює n
трикутне квадратне число і виводить / повертає його, де n - додатне ненулеве число. (Для n = 1 повернення 0)
Щоб програма / функція була дійсною подачею, вона повинна мати можливість повернути принаймні всі квадратні трикутники, менші за 2 ^ 31-1.
Бонус
-4 байти за можливість вивести всі квадратні трикутні числа менше 2 ^ 63-1
-4 байти для теоретичного виведення квадратних трикутних чисел будь-якого розміру.
+8 байт-покарання для рішень, які займають неполіномічний час.
Стек бонусів.
Це завдання з гольф-кодом, тож відповідь з найменшими байтами виграє.
n
кроки, і на кожному кроці арифметика займає лінійний час, оскільки кількість цифр лінійно зростає в n
. Я не думаю, що лінійний час можливий. Якщо ви не кажете, що арифметичні операції є постійним часом?