Data update

This commit is contained in:
Ingy döt Net 2024-10-16 18:07:41 -07:00
parent 81fd053722
commit 52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions

View file

@ -1,6 +1,4 @@
(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">2</span> <span style="color: #008080;">to</span> <span style="color: #000000;">99736</span> <span style="color: #008080;">by</span> <span style="color: #000000;">2</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">*</span><span style="color: #000000;">i</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1000000</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">269696</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">i</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<!--
with javascript_semantics
for i=2 to 99736 by 2 do
if remainder(i*i,1000000)=269696 then ?i exit end if
end for

View file

@ -1,30 +1,28 @@
(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">solve_babbage_problem</span><span style="color: #0000FF;">()</span> <span style="color: #000080;font-style:italic;">-- (so that return quits 3 loops)</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">cands</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0</span><span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- n-digit candidates (n initially 0)</span>
<span style="color: #000000;">nextc</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span> <span style="color: #000080;font-style:italic;">-- n+1-digit candidates, aka next ""</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">p10</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- power of 10 for adding prefixes</span>
<span style="color: #000000;">r10</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">10</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- power of 10 for getting remainder</span>
<span style="color: #000000;">cc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span> <span style="color: #000080;font-style:italic;">-- count of calculations</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">digits</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">6</span> <span style="color: #008080;">do</span> <span style="color: #000080;font-style:italic;">-- aka 1..length("269696")</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">prefix</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">to</span> <span style="color: #000000;">9</span><span style="color: #0000FF;">*</span><span style="color: #000000;">p10</span> <span style="color: #008080;">by</span> <span style="color: #000000;">p10</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">cand</span> <span style="color: #008080;">in</span> <span style="color: #7060A8;">sq_add</span><span style="color: #0000FF;">(</span><span style="color: #000000;">prefix</span><span style="color: #0000FF;">,</span><span style="color: #000000;">cands</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
<span style="color: #004080;">atom</span> <span style="color: #000000;">square</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">cand</span><span style="color: #0000FF;">*</span><span style="color: #000000;">cand</span>
<span style="color: #000000;">cc</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #000000;">square</span><span style="color: #0000FF;">,</span><span style="color: #000000;">r10</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #000000;">269696</span><span style="color: #0000FF;">,</span><span style="color: #000000;">r10</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">digits</span><span style="color: #0000FF;">=</span><span style="color: #000000;">6</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Solution: %d (%d calcs)\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">cand</span><span style="color: #0000FF;">,</span><span style="color: #000000;">cc</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">return</span> <span style="color: #000080;font-style:italic;">-- leave solve_babbage_problem()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #000000;">nextc</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">cand</span> <span style="color: #000080;font-style:italic;">-- add candidate for next iteration</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">cands</span><span style="color: #0000FF;">,</span><span style="color: #000000;">nextc</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">nextc</span><span style="color: #0000FF;">,{}}</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d-digit candidates: %v\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">digits</span><span style="color: #0000FF;">,</span><span style="color: #000000;">cands</span><span style="color: #0000FF;">})</span>
<span style="color: #000000;">p10</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
<span style="color: #000000;">r10</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">solve_babbage_problem</span><span style="color: #0000FF;">()</span>
<!--
with javascript_semantics
procedure solve_babbage_problem() -- (so that return quits 3 loops)
sequence cands = {0}, -- n-digit candidates (n initially 0)
nextc = {} -- n+1-digit candidates, aka next ""
integer p10 = 1, -- power of 10 for adding prefixes
r10 = 10, -- power of 10 for getting remainder
cc = 0 -- count of calculations
for digits=1 to 6 do -- aka 1..length("269696")
for prefix=0 to 9*p10 by p10 do
for cand in sq_add(prefix,cands) do
atom square = cand*cand
cc += 1
if remainder(square,r10) = remainder(269696,r10) then
if digits=6 then
printf(1,"Solution: %d (%d calcs)\n",{cand,cc})
return -- leave solve_babbage_problem()
end if
nextc &= cand -- add candidate for next iteration
end if
end for
end for
{cands,nextc} = {nextc,{}}
printf(1,"%d-digit candidates: %v\n",{digits,cands})
p10 *= 10
r10 *= 10
end for
end procedure
solve_babbage_problem()

View file

@ -0,0 +1,14 @@
const std = @import("std");
pub fn main() !void {
var i: u64 = 0;
var result: u64 = 99_736;
while (i < 99_736) : (i += 1) {
if (i * i % 1_000_000 == 269_696) {
result = i;
break;
}
}
std.debug.print("The smallest number whose square ends in 269696 is {}\n", .{i});
std.debug.print("The square is {}\n", .{i * i});
}