Тема: Codewars: Maximum different differences. Точність обчислень
Повна умова тут
Якщо викинути всю мішуру, то треба знайти номер найбільшого трикутного числа, меншого за задане. Це нескладно, але перевірка іде з високою точністю (на кшталт an=479303728892892547), і моя тупа математика
int(((8*(a_n-1)+1)**.5-1)/2)
дає похибку в 1 (тест каже, що має бути 979085009, а мій код видає 979085010. І взагалі там значення до 2**200).
Як тут можна підвищити точність?
О, власне, спитав і сам дав собі відповідь:
from decimal import *
def max_df(a_n: int) -> int:
getcontext().prec = 60
return int(((Decimal(8*(a_n-1)+1))**Decimal(.5)-1)/2)
Зараз гляну, як інші викручувалися...