Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,64 +0,0 @@
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
||||
|
||||
procedure Main is
|
||||
procedure divisor_count_and_sum
|
||||
(n : Positive; divisor_count : out Natural; divisor_sum : out Natural)
|
||||
is
|
||||
I : Positive := 1;
|
||||
J : Natural;
|
||||
begin
|
||||
divisor_count := 0;
|
||||
divisor_sum := 0;
|
||||
loop
|
||||
J := n / I;
|
||||
exit when J < I;
|
||||
if I * J = n then
|
||||
divisor_sum := divisor_sum + I;
|
||||
divisor_count := divisor_count + 1;
|
||||
if I /= J then
|
||||
divisor_sum := divisor_sum + J;
|
||||
divisor_count := divisor_count + 1;
|
||||
end if;
|
||||
end if;
|
||||
I := I + 1;
|
||||
end loop;
|
||||
end divisor_count_and_sum;
|
||||
|
||||
arithmetic_count : Natural := 0;
|
||||
composite_count : Natural := 0;
|
||||
div_count : Natural;
|
||||
div_sum : Natural;
|
||||
mean : Natural;
|
||||
n : Positive := 1;
|
||||
begin
|
||||
|
||||
while arithmetic_count <= 1_000_000 loop
|
||||
divisor_count_and_sum (n, div_count, div_sum);
|
||||
mean := div_sum / div_count;
|
||||
if mean * div_count = div_sum then
|
||||
arithmetic_count := arithmetic_count + 1;
|
||||
if div_count > 2 then
|
||||
composite_count := composite_count + 1;
|
||||
end if;
|
||||
if arithmetic_count <= 100 then
|
||||
Put (Item => n, Width => 4);
|
||||
if arithmetic_count mod 10 = 0 then
|
||||
New_Line;
|
||||
end if;
|
||||
end if;
|
||||
if arithmetic_count = 1_000 or else arithmetic_count = 10_000
|
||||
or else arithmetic_count = 100_000
|
||||
or else arithmetic_count = 1_000_000
|
||||
then
|
||||
New_Line;
|
||||
Put (Item => arithmetic_count, Width => 1);
|
||||
Put_Line ("th arithmetic number is" & n'Image);
|
||||
Put_Line
|
||||
("Number of composite arithmetic numbers <=" & n'Image & ":" &
|
||||
composite_count'Image);
|
||||
end if;
|
||||
end if;
|
||||
n := n + 1;
|
||||
end loop;
|
||||
end Main;
|
||||
|
|
@ -1,39 +1,41 @@
|
|||
proc arith n &ari &comp .
|
||||
fastfunc arith n .
|
||||
divi = 1
|
||||
repeat
|
||||
quot = n div divi
|
||||
until quot < divi
|
||||
if quot = divi and n mod divi = 0
|
||||
sum += quot
|
||||
divcnt += 1
|
||||
break 1
|
||||
.
|
||||
until quot <= divi
|
||||
if n mod divi = 0
|
||||
sum += divi + quot
|
||||
divcnt += 2
|
||||
.
|
||||
divi += 1
|
||||
.
|
||||
ari = if sum mod divcnt = 0
|
||||
comp = if divcnt > 2
|
||||
if quot = divi and n mod divi = 0
|
||||
sum += quot
|
||||
divcnt += 1
|
||||
.
|
||||
if sum mod divcnt = 0
|
||||
if divcnt > 2 : return 2
|
||||
return 1
|
||||
.
|
||||
return 0
|
||||
.
|
||||
print "The first 100 arithmetic numbers are:"
|
||||
n = 1
|
||||
while cnt < 100
|
||||
arith n ari comp
|
||||
if ari = 1
|
||||
ari = arith n
|
||||
if ari > 0
|
||||
write n & " "
|
||||
cnt += 1
|
||||
compcnt += comp
|
||||
compcnt += if ari = 2
|
||||
.
|
||||
n += 1
|
||||
.
|
||||
print ""
|
||||
while cnt < 1e5
|
||||
arith n ari comp
|
||||
if ari = 1
|
||||
ari = arith n
|
||||
if ari > 0
|
||||
cnt += 1
|
||||
compcnt += comp
|
||||
compcnt += if ari = 2
|
||||
if cnt = 1e3 or cnt = 1e4 or cnt = 1e5
|
||||
print ""
|
||||
print cnt & "th arithmetic number: " & n
|
||||
|
|
|
|||
|
|
@ -1,27 +1,24 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">arithmetic</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">composite</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
|
||||
with javascript_semantics
|
||||
sequence arithmetic = {1}
|
||||
integer composite = 0
|
||||
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">get_arithmetic</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">nth</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">n</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">arithmetic</span><span style="color: #0000FF;">[$]+</span><span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">while</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">arithmetic</span><span style="color: #0000FF;">)<</span><span style="color: #000000;">nth</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">divs</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">factors</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sum</span><span style="color: #0000FF;">(</span><span style="color: #000000;">divs</span><span style="color: #0000FF;">),</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">divs</span><span style="color: #0000FF;">))=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">composite</span> <span style="color: #0000FF;">+=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">divs</span><span style="color: #0000FF;">)></span><span style="color: #000000;">2</span>
|
||||
<span style="color: #000000;">arithmetic</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">n</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #000000;">n</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">arithmetic</span><span style="color: #0000FF;">[</span><span style="color: #000000;">nth</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
procedure get_arithmetics(integer nth)
|
||||
integer n = arithmetic[$]+1
|
||||
while length(arithmetic)<nth do
|
||||
sequence divs = factors(n,1)
|
||||
if remainder(sum(divs),length(divs))=0 then
|
||||
composite += length(divs)>2
|
||||
arithmetic &= n
|
||||
end if
|
||||
n += 1
|
||||
end while
|
||||
end procedure
|
||||
|
||||
<span style="color: #0000FF;">{}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">get_arithmetic</span><span style="color: #0000FF;">(</span><span style="color: #000000;">100</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;">"The first 100 arithmetic numbers are:\n%s\n"</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #0000FF;">{</span><span style="color: #7060A8;">join_by</span><span style="color: #0000FF;">(</span><span style="color: #000000;">arithmetic</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">,</span><span style="color: #000000;">fmt</span><span style="color: #0000FF;">:=</span><span style="color: #008000;">"%3d"</span><span style="color: #0000FF;">)})</span>
|
||||
<span style="color: #008080;">constant</span> <span style="color: #000000;">fmt</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"The %,dth arithmetic number is %,d up to which %,d are composite.\n"</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">n</span> <span style="color: #008080;">in</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1e3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1e4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1e5</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1e6</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">nth</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">get_arithmetic</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</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: #000000;">fmt</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">n</span><span style="color: #0000FF;">,</span><span style="color: #000000;">nth</span><span style="color: #0000FF;">,</span><span style="color: #000000;">composite</span><span style="color: #0000FF;">})</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<!--
|
||||
get_arithmetics(100)
|
||||
printf(1,"The first 100 arithmetic numbers are:\n%s\n",
|
||||
{join_by(arithmetic,1,10," ",fmt:="%3d")})
|
||||
constant fmt = "The %,dth arithmetic number is %,d up to which %,d are composite.\n"
|
||||
for n in {1e3,1e4,1e5,1e6} do
|
||||
get_arithmetics(n)
|
||||
printf(1,fmt,{n,arithmetic[n],composite})
|
||||
end for
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- 8 May 2025
|
||||
include Settings
|
||||
-- 23 Aug 2025
|
||||
include Setting
|
||||
|
||||
say 'ARITHMETIC NUMBERS'
|
||||
say version
|
||||
|
|
@ -30,7 +30,4 @@ end
|
|||
say Format(Time('e'),,3) 'seconds'
|
||||
return
|
||||
|
||||
include Numbers
|
||||
include Functions
|
||||
include Special
|
||||
include Abend
|
||||
include Math
|
||||
|
|
|
|||
|
|
@ -1,46 +0,0 @@
|
|||
'arithmetic numbers
|
||||
'run with CScript
|
||||
|
||||
function isarit_compo(i)
|
||||
cnt=0
|
||||
sum=0
|
||||
for j=1 to sqr(i)
|
||||
if (i mod j)=0 then
|
||||
k=i\j
|
||||
|
||||
if k=j then
|
||||
cnt=cnt+1:sum=sum+j
|
||||
else
|
||||
cnt=cnt+2:sum=sum+j+k
|
||||
end if
|
||||
end if
|
||||
next
|
||||
avg= sum/cnt
|
||||
isarit_compo= array((fix(avg)=avg),-(cnt>2))
|
||||
end function
|
||||
|
||||
function rpad(a,n) rpad=right(space(n)&a,n) :end function
|
||||
|
||||
dim s1
|
||||
sub print(s)
|
||||
s1=s1& rpad(s,4)
|
||||
if len(s1)=40 then wscript.stdout.writeline s1:s1=""
|
||||
end sub
|
||||
|
||||
'main program
|
||||
cntr=0
|
||||
cntcompo=0
|
||||
i=1
|
||||
wscript.stdout.writeline "the first 100 arithmetic numbers are:"
|
||||
do
|
||||
a=isarit_compo(i)
|
||||
if a(0) then
|
||||
cntcompo=cntcompo+a(1)
|
||||
cntr=cntr+1
|
||||
if cntr<=100 then print i
|
||||
if cntr=1000 then wscript.stdout.writeline vbcrlf&"1000th : "&rpad(i,6) & " nr composites " &rpad(cntcompo,6)
|
||||
if cntr=10000 then wscript.stdout.writeline vbcrlf& "10000th : "&rpad(i,6) & " nr composites " &rpad(cntcompo,6)
|
||||
if cntr=100000 then wscript.stdout.writeline vbcrlf &"100000th : "&rpad(i,6) & " nr composites " &rpad(cntcompo,6):exit do
|
||||
end if
|
||||
i=i+1
|
||||
loop
|
||||
Loading…
Add table
Add a link
Reference in a new issue