'''
Author: Lluís Vila
ETSEIB - UPC
c 2025-26 
'''

import math

def t(k, i):
    return k * math.sqrt(i) * math.sin(1 / i**2)

def sininv_series(k, ntmax, eps):
    prev = t(k, 1)
    suma = t(k, 1)
    i = 2 # next term to add
    curr = t(k, i)
    while abs(prev-curr) >= eps and i <= ntmax:
        suma += curr
        # print(f'{i}: t={curr}, sum={suma}, dif={abs(prev-curr)}')
        prev = curr
        i += 1
        curr = t(k, i)
    return suma, i-1
