def soldiofanteprimaversione (a,b,h): d=mcd(a,b) if h%d: return None s=h//d colonne=pq(*euclide(a,b)) n=len(colonne); (v,u)=colonne[-2] if not n%2: v=-v else: u=-u return (u*s,v*s) print (soldiofanteprimaversione(7464,3580,12)) # (318, -663) print (soldiofanteprimaversione(26,15,1)) # (-4, 7) print (soldiofanteprimaversione(1324,410,20)) # (480, -1550)