J'étais justement en train de décrypter la formulation de certaines lignes de ce code que je ne maitrise pas
vraiment.
import math
base = 2025
square = base ** 2
# Trouver tous les diviseurs de 2025^2
divisors = []
for i in range(1, int(math.isqrt(square)) + 1):
if square % i == 0:
divisors.append((i, square // i))
# Générer les couples (m, n)
solutions = []
for d1, d2 in divisors:
m1, n1 = d1 + base, d2 + base
if (m1, n1) not in solutions and (n1, m1) not in solutions:
solutions.append((m1, n1))
# Trier les solutions
solutions_sorted = sorted(solutions)
# Affichage
for i, (m, n) in enumerate(solutions_sorted, 1):
print(f"{i:2d}) (m, n) = ({m}, {n})")
print(f"\nTotal : {len(solutions_sorted)} solutions")