Data update
This commit is contained in:
parent
29a5eea0d4
commit
5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions
|
|
@ -1,31 +1,31 @@
|
|||
val .fun = fn(.a, .b, .c) [.b, .b * .c + .a]
|
||||
val fun = fn a, b, c: [b, b * c + a]
|
||||
|
||||
val .solvePell = fn(.n) {
|
||||
val .x = trunc .n ^/ 2
|
||||
var .y, .z, .r = .x, 1, .x * 2
|
||||
var .e1, .e2, .f1, .f2 = 1, 0, 0, 1
|
||||
val solvePell = fn(n) {
|
||||
val x = trunc(n ^/ 2)
|
||||
var y, z, r = x, 1, x * 2
|
||||
var e1, e2, f1, f2 = 1, 0, 0, 1
|
||||
|
||||
for {
|
||||
.y = .r * .z - .y
|
||||
.z = (.n - .y * .y) \ .z
|
||||
.r = (.x + .y) \ .z
|
||||
.e1, .e2 = .fun(.e1, .e2, .r)
|
||||
.f1, .f2 = .fun(.f1, .f2, .r)
|
||||
val .b, .a = .fun(.e2, .f2, .x)
|
||||
if .a^2 - .n * .b^2 == 1: return [.a, .b]
|
||||
y = r * z - y
|
||||
z = (n - y * y) \ z
|
||||
r = (x + y) \ z
|
||||
e1, e2 = fun(e1, e2, r)
|
||||
f1, f2 = fun(f1, f2, r)
|
||||
val b, a = fun(e2, f2, x)
|
||||
if a^2 - n * b^2 == 1: return [a, b]
|
||||
}
|
||||
}
|
||||
|
||||
val .C = fn(.x) {
|
||||
val C = fn(x) {
|
||||
# format number string with commas
|
||||
var .neg, .s = "", string .x
|
||||
if .s[1] == '-' {
|
||||
.neg, .s = "-", rest .s
|
||||
var neg, s = "", x -> string
|
||||
if s[1] == '-' {
|
||||
neg, s = "-", s -> rest
|
||||
}
|
||||
.neg ~ join ",", split -3, .s
|
||||
neg ~ join(",", split(-3, s))
|
||||
}
|
||||
|
||||
for .n in [61, 109, 181, 277, 8941] {
|
||||
val .x, .y = .solvePell(.n)
|
||||
writeln $"x² - \.n;y² = 1 for:\n\tx = \.x:.C;\n\ty = \.y:.C;\n"
|
||||
for n in [61, 109, 181, 277, 8941] {
|
||||
val x, y = solvePell(n)
|
||||
writeln "x² - {{n}}y² = 1 for:\n\tx = {{x:fn C}}\n\ty = {{y:fn C}}\n"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue