Формула
Візьмемо для прикладу число 300
- Основними факторами 300 є
[2, 3, 5]
(унікальні числа, які є коефіцієнтами 300 і простими) - Сквактування кожного з цих чисел дасть вам
[4, 9, 25]
- Підсумовуючи цей список, ви отримаєте
4 + 9 + 25 = 38
- Нарешті відніміть цю суму (38) від початкового числа
300-38 = 262
(це результат)
Вхідні дані
Вашим вхідним числом буде додатне ціле число, що перевищує 2. Ви повинні перевірити всі числа від 2 до вхідного значення (включно) і знайти число, яке дає найбільший результат за формулою вище.
Вихідні дані
Вашим результатом буде два числа, розділені пробілом, комою, новим рядком або тим, що ви дозволяєте мовою (для розмежування цих двох чисел необхідно розділення). Вони можуть бути виведені у файл, stdout або будь-яку іншу мову, якою користується. Ваша мета - знайти число в діапазоні, який дає максимальний вихід при виконанні формули вище. Перше відображене число повинно бути початковим числом (як 300), а друге число повинно бути результатом, який формула формула (наприклад, 262)
Випробування
Input: 3 Output: 2, -2
Input: 10 Output: 8, 4
Input: 50 Output: 48, 35
Input: 1000 Output: 1000, 971
Input: 9999 Output: 9984, 9802
Опрацьовано за прикладом
Розглянемо вхід 10, ми повинні запустити формулу для всіх чисел від 2-10 (включно)
Num PrimeFacs PrimeFacs^2 SumPrimeFacs^2 Result
2 [2] [4] 4 -2
3 [3] [9] 9 -6
4 [2] [4] 4 0
5 [5] [25] 25 -20
6 [2, 3] [4, 9] 13 -7
7 [7] [49] 49 -42
8 [2] [4] 4 4
9 [3] [9] 9 0
10 [2, 5] [4, 25] 29 -19
Як бачите, найбільший результат - 4
результат введення значення 8
у формулу. Це означає, що вихід для входу 10
повинен бути8, 4
Підрахунок та правила
Діють правила за замовчуванням для входів і виходів: За замовчуванням для Code Golf: Методи введення / виведення
Стандартні лазівки заборонені: Пропуски, заборонені за замовчуванням.
Подання можуть бути функціями або повними програмами
Виграє найкоротший код у байтах
50
: 35, 48
?