Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
34
Task/Disarium-numbers/Ada/disarium-numbers.adb
Normal file
34
Task/Disarium-numbers/Ada/disarium-numbers.adb
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
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;
|
||||
36
Task/Disarium-numbers/COBOL/disarium-numbers.cob
Normal file
36
Task/Disarium-numbers/COBOL/disarium-numbers.cob
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
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.
|
||||
11
Task/Disarium-numbers/Icon/disarium-numbers.icon
Normal file
11
Task/Disarium-numbers/Icon/disarium-numbers.icon
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
procedure main(A)
|
||||
limit := \A[1] | 18
|
||||
every writes(" ",disarium(seq(0)))\limit
|
||||
write()
|
||||
end
|
||||
|
||||
procedure disarium(n)
|
||||
ns := string(n) # Avoid redundant conversions later
|
||||
every ((s := i := 0), j := !ns, i +:= 1) do s +:= ns[i]^i
|
||||
return s = n
|
||||
end
|
||||
2
Task/Disarium-numbers/Uiua/disarium-numbers.uiua
Normal file
2
Task/Disarium-numbers/Uiua/disarium-numbers.uiua
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
IsDis ← =⊸(/+≡ⁿ+1⇡⊸⧻≡₀⋕°⋕)
|
||||
⍜now(⋅⇌⍢(+1⍥⟜⊂⊸IsDis|<19⋅⧻)0[])
|
||||
Loading…
Add table
Add a link
Reference in a new issue