Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
14
Task/Babbage-problem/Zig/babbage-problem.zig
Normal file
14
Task/Babbage-problem/Zig/babbage-problem.zig
Normal 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});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue