Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
function square_form_factor(n::T)::T where T <: Integer
|
||||
multiplier = T.([1, 3, 5, 7, 11, 3*5, 3*7, 3*11, 5*7, 5*11, 7*11, 3*5*7, 3*5*11, 3*7*11, 5*7*11, 3*5*7*11])
|
||||
s = T(round(sqrt(n)))
|
||||
s * s == n && return s
|
||||
for k in multiplier
|
||||
T != BigInt && n > typemax(T) ÷ k && break
|
||||
d = k * n
|
||||
p0 = pprev = p = isqrt(d)
|
||||
qprev = one(T)
|
||||
Q = d - p0 * p0
|
||||
l = T(floor(2 * sqrt(2 * s)))
|
||||
B, i = 3 * l, 2
|
||||
while i < B
|
||||
b = (p0 + p) ÷ Q
|
||||
p = b * Q - p
|
||||
q = Q
|
||||
Q = qprev + b * (pprev - p)
|
||||
r = T(round(sqrt(Q)))
|
||||
iseven(i) && r * r == Q && break
|
||||
qprev, pprev = q, p
|
||||
i += 1
|
||||
end
|
||||
i >= B && continue
|
||||
b = (p0 - p) ÷ r
|
||||
pprev = p = b * r + p
|
||||
qprev = r
|
||||
Q = (d - pprev * pprev) ÷ qprev
|
||||
i = 0
|
||||
while true
|
||||
b = (p0 + p) ÷ Q
|
||||
pprev = p
|
||||
p = b * Q - p
|
||||
q = Q
|
||||
Q = qprev + b * (pprev - p)
|
||||
qprev = q
|
||||
i += 1
|
||||
p == pprev && break
|
||||
end
|
||||
r = gcd(n, qprev)
|
||||
r != 1 && r != n && return r
|
||||
end
|
||||
return zero(T)
|
||||
end
|
||||
|
||||
println("Integer Factor Quotient\n", "-"^45)
|
||||
@time for n in Int128.([
|
||||
2501, 12851, 13289, 75301, 120787, 967009, 997417, 7091569, 13290059, 42854447, 223553581,
|
||||
2027651281, 11111111111, 100895598169, 1002742628021, 60012462237239, 287129523414791,
|
||||
9007199254740931, 11111111111111111, 314159265358979323, 384307168202281507, 419244183493398773,
|
||||
658812288346769681, 922337203685477563, 1000000000000000127, 1152921505680588799,
|
||||
1537228672809128917, 4611686018427387877])
|
||||
print(rpad(n, 22))
|
||||
factr = square_form_factor(n)
|
||||
print(rpad(factr, 10))
|
||||
println(factr == 0 ? "fail" : n ÷ factr)
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue