Вступ та кредит
Всі ми знаємо і любимо наші дивовижні правила, щоб перевірити, чи можна ділити число на 11 чи 3, що є лише певною розумною сумою над цифрами числа. Тепер цей виклик піднімає це на новий рівень, вимагаючи від вас обчислити суму цифр, а потім перевірити, чи є результат ідеальним цілим квадратом, жодна з яких операцій зазвичай не може бути виконана дуже коротко. Оскільки цю властивість також дуже важко помітити, дивлячись на число, ми хочемо, щоб це було зроблено для цілих списків чисел, щоб ми могли зберегти людську роботу. Тож це вже ваш виклик!
Це було завдання на моєму курсі функціонального програмування в університеті. Це завдання закрите і обговорювалося на уроці, і я маю дозвіл свого професора на публікацію його тут (я попросив прямо).
Специфікація
Вхідні дані
Ваш вхід - це список негативних чисел у будь-якому стандартному форматі вводу / виводу.
Ви можете обрати формат списку у міру необхідності
Вихідні дані
Вихід - це список цілих чисел у будь-якому стандартному форматі вводу / виводу.
Що робити?
Відфільтруйте кожне ціле число зі списку вхідних даних, для яких сума цифр не є aa квадрата (цілого числа).
Порядок елементів може не змінюватися, наприклад, якщо ви отримаєте, [1,5,9]
ви не можете повернутися[9,1]
Потенційні кутові справи
0 - це невід'ємне ціле число і, таким чином, є дійсним введенням, а 0 також є коректним цілим корінцем, наприклад 0 вважається цілим квадратом.
Порожній список також є дійсним входом і виходом.
Хто виграє?
Це код-гольф, тому найкоротша відповідь у байтах виграє!
Звичайно, застосовуються стандартні правила.
Випробування
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
Покроковий приклад
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]