И как исправить эту ошибку
Мне нужен ответ как исправить а что за ошибка я уже вкурсе.
import numba
from numba import njit, prange
from typing import Tuple
import numpy as np
from functools import lru_cache
@lru_cache(maxsize=256)
@numba.njit(parallel=True, fastmath=True, error_model='numpy')
def four_squares(n: np.int64) -> Tuple[np.int64, np.int64, np.int64, np.float64]:
for a in prange(np.float64(n**0.5) + 1):
for b in prange(np.float64((n - a**2)**0.5) + 1):
for c in prange(np.float64((n - a**2 - b**2)**0.5) + 1):
d = np.float64(np.round((n - a**2 - b**2 - c**2)**0.5))
if a**2 + b**2 + c**2 + d**2 == n:
return a, b, c, d
return np.int64(0), np.int64(0), np.int64(0), np.float64(0)
def main() -> None:
for i in [0, 1, 17, 33, 215, 333, 2**12-3, 1234567890, 10_313_546_885_799_053_312]:
a, b, c, d = four_squares(i)
error_msg = None
s = a * a + b * b + c * c + d * d
if s != i:
error_msg = f"Incorrect sum.\nSquares: [{a}, {b}, {c}, {d}]\nActual: {
a * a + b * b + c * c + d * d}\nExpected: {i}"
if error_msg is not None:
print(error_msg)
else:
print("Решение принято")
if __name__ == "__main__":
main()
Возникает ошибка
Traceback (most recent call last):
File "c:\tradesignals\main22.py", line 35, in <module>
main()
File "c:\tradesignals\main22.py", line 22, in main
a, b, c, d = four_squares(i)
^^^^^^^^^^^^^^^
OverflowError: int too big to convert
c числом 1_313_546_885_799_053_312 все тесты проходят быстро