Фон
Можно показать , что для любого целого числа k >= 0
, f(k) = tan(atan(0) + atan(1) + atan(2) + ... + atan(k))
является рациональным числом.
Цель
Напишите полную программу или функцию, которая при получении k >= 0
выводитf(k)
как одну уменьшенную дробь (числитель и знаменатель взаимно просты).
Контрольные примеры
Первые несколько значений
f(0) = (0,1)
f(1) = (1,1)
f(2) = (-3,1)
f(3) = (0,1)
f(4) = (4,1)
f(5) = (-9,19)
f(6) = (105,73)
правила
- Стандартные лазейки запрещены.
- Вход и выход могут быть в любом удобном формате. Вы можете вывести
f(k)
как строкуnumerator/denominator
, как кортеж из двух целых чисел, дроби или рационального объекта и т. Д. Если вы выводите строку, дайте только два целых числа, то есть выведите3/2
вместо1 1/2
. - Это код-гольф, самый короткий ответ (в байтах) выигрывает.
atan(0)
Срок не является необходимым.