From 9b0f077d2be12bf4a2c4bf8c0b28e21d23379e89 Mon Sep 17 00:00:00 2001 From: daviddoji Date: Fri, 8 Sep 2023 18:58:07 +0200 Subject: [PATCH] Solution to problem 66 in Python --- src/Python/Problem066.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/Python/Problem066.py diff --git a/src/Python/Problem066.py b/src/Python/Problem066.py new file mode 100644 index 0000000..292904c --- /dev/null +++ b/src/Python/Problem066.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +""" +Created on 08 Sep 2023 + +@author: David Doblas Jiménez +@email: daviddoji@pm.me + +Solution for problem 066 from Project Euler +https://projecteuler.net/problem=66 +""" + +from sympy import simplify +from sympy.abc import t, x, y +from sympy.solvers.diophantine.diophantine import diop_quadratic +from utils import timeit + + +@timeit("Problem 066") +def compute(): + """ + # Statement + """ + + max_d, max_x = 0, 0 + for d in range(2, 1000): + solve = diop_quadratic(x**2 - d * y**2 - 1, t) + for i in solve: + sol = simplify(i.subs({t: 0})) + xx = sol[0] + if xx > max_x: + max_x = xx + max_d = d + + return max_d + + +if __name__ == "__main__": + print(f"Result for Problem 066 is {compute()}")