Вызов
Учитывая положительное целое число N
, выведите сумму первых N
обратных значений в виде точной дроби, которая представлена в виде пары целых чисел в согласованном порядке, представляющем числитель и знаменатель.
правила
Вывод должен быть точным.
Вывод должен быть в виде пары целых чисел в согласованном порядке, представляющем числитель и знаменатель.
Использование нецелых числовых типов (встроенных или библиотечных) запрещено.
- Пояснение / исключение: нецелые числовые типы допустимы, если и только если все используемые, вычисленные и возвращенные значения являются целыми числами (т. Е. Ваш язык использует рациональные числа по умолчанию, но вы используете только целочисленную арифметику в своем ответе)
Вывод должен быть как можно меньше. (
3/2
все в порядке,6/4
нет)Стандартные лазейки запрещены.
Материалы должны работать для входных данных, по крайней мере, до 20, или эта мета , в зависимости от того, что выше.
Тестовые случаи
1: 1/1
2: 3/2 (1/1 + 1/2)
3: 11/6 (1/1 + 1/2 + 1/3)
4: 25/12 etc.
5: 137/60
6: 49/20
20: 55835135/15519504
56: 252476961434436524654789/54749786241679275146400
226: 31741146384418617995319820836410246588253008380307063166243468230254437801429301078323028997161/5290225078451893176693594241665890914638817631063334447389979640757204083936351078274058192000
Генерация тест-кейсов (Python 3)
import fractions
def f(x):
return sum(fractions.Fraction(1,i) for i in range(1,x+1))
Похож на этот вызов и этот вызов .
Числителями являются OEIS A001008 , а знаменателями являются OEIS A002805 .
gcd
ли «встроенная функция», если ваш язык обеспечивает ее?
gcd
и другие встроенные функции в порядке. Рациональные / дробные типы не допускаются.