Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,34 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
procedure Disarium_Numbers is
|
||||
|
||||
Disarium_Count : constant := 19;
|
||||
|
||||
function Is_Disarium (N : Natural) return Boolean is
|
||||
Nn : Natural := N;
|
||||
Pos : Natural := 0;
|
||||
Sum : Natural := 0;
|
||||
begin
|
||||
while Nn /= 0 loop
|
||||
Nn := Nn / 10;
|
||||
Pos := Pos + 1;
|
||||
end loop;
|
||||
Nn := N;
|
||||
while Nn /= 0 loop
|
||||
Sum := Sum + (Nn mod 10) ** Pos;
|
||||
Nn := Nn / 10;
|
||||
Pos := Pos - 1;
|
||||
end loop;
|
||||
return N = Sum;
|
||||
end Is_Disarium;
|
||||
|
||||
Count : Natural := 0;
|
||||
begin
|
||||
for N in 0 .. Natural'Last loop
|
||||
if Is_Disarium (N) then
|
||||
Count := Count + 1;
|
||||
Ada.Text_IO.Put (N'Image);
|
||||
end if;
|
||||
exit when Count = Disarium_Count;
|
||||
end loop;
|
||||
end Disarium_Numbers;
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. DISARIUM.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 VARIABLES.
|
||||
03 CANDIDATE PIC 9(9).
|
||||
03 DIGITS PIC 9 OCCURS 9 TIMES, REDEFINES CANDIDATE.
|
||||
03 IDX PIC 99.
|
||||
03 EXPONENT PIC 99.
|
||||
03 DGT-POWER PIC 9(9).
|
||||
03 DGT-POWER-SUM PIC 9(9).
|
||||
03 CAND-OUT PIC Z(8)9.
|
||||
03 AMOUNT PIC 99 VALUE 18.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
BEGIN.
|
||||
PERFORM DISARIUM-TEST VARYING CANDIDATE FROM ZERO BY 1
|
||||
UNTIL AMOUNT IS ZERO.
|
||||
STOP RUN.
|
||||
|
||||
DISARIUM-TEST.
|
||||
MOVE ZERO TO DGT-POWER-SUM.
|
||||
MOVE 1 TO EXPONENT, IDX.
|
||||
INSPECT CANDIDATE TALLYING IDX FOR LEADING ZEROES.
|
||||
PERFORM ADD-DIGIT-POWER UNTIL IDX IS GREATER THAN 9.
|
||||
IF DGT-POWER-SUM IS EQUAL TO CANDIDATE,
|
||||
MOVE CANDIDATE TO CAND-OUT,
|
||||
DISPLAY CAND-OUT,
|
||||
SUBTRACT 1 FROM AMOUNT.
|
||||
|
||||
ADD-DIGIT-POWER.
|
||||
COMPUTE DGT-POWER = DIGITS(IDX) ** EXPONENT.
|
||||
ADD DGT-POWER TO DGT-POWER-SUM.
|
||||
ADD 1 TO EXPONENT.
|
||||
ADD 1 TO IDX.
|
||||
|
|
@ -1,18 +1,21 @@
|
|||
func disarium x .
|
||||
h = x
|
||||
while h > 0
|
||||
d[] &= h mod 10
|
||||
h = h div 10
|
||||
fastfunc disarium n .
|
||||
n0 = n
|
||||
ndig = floor log n 10 + 1
|
||||
for i = ndig downto 1
|
||||
h += pow (n mod 10) i
|
||||
n = n div 10
|
||||
.
|
||||
for i = 1 to len d[]
|
||||
h += pow d[i] (len d[] - i + 1)
|
||||
.
|
||||
return if h = x
|
||||
if h = n0 : return 1
|
||||
.
|
||||
while count < 19
|
||||
if disarium n = 1
|
||||
count += 1
|
||||
print n
|
||||
fastfunc nextdisarium n .
|
||||
repeat
|
||||
n += 1
|
||||
until disarium n = 1
|
||||
.
|
||||
n += 1
|
||||
return n
|
||||
.
|
||||
for i to 18
|
||||
n = nextdisarium n
|
||||
write n & " "
|
||||
.
|
||||
print ""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue