Sub Fun(Byref a As LongInt, Byref b As LongInt, c As Integer) Dim As LongInt t t = a : a = b : b = b * c + t End Sub Sub SolvePell(n As Integer, Byref a As LongInt, Byref b As LongInt) Dim As Integer z, r Dim As LongInt x, y, e1, e2, f1, f2 x = Sqr(n) : y = x : z = 1 : r = 2 * x e1 = 1 : e2 = 0 : f1 = 0 : f2 = 1 While True y = r * z - y : z = (n - y * y) / z : r = (x + y) / z Fun(e1, e2, r) : Fun(f1, f2, r) : a = f2 : b = e2 : Fun(b, a, x) If a * a - n * b * b = 1 Then Exit Sub Wend End Sub Dim As Integer i Dim As LongInt x, y Dim As Integer n(0 To 3) = {61, 109, 181, 277} For i = 0 To 3 ''n In {61, 109, 181, 277} SolvePell(n(i), x, y) Print Using "x^2 - ### * y^2 = 1 for x = ##################### and y = #####################"; n(i); x; y Next i