Munchausen numbers: Difference between revisions

→‎{{header|ALGOL 68}}: Simplified because Munchausen numbers consider 0^0 to be 0.
(Added Sidef)
(→‎{{header|ALGOL 68}}: Simplified because Munchausen numbers consider 0^0 to be 0.)
Line 10:
=={{header|ALGOL 68}}==
<lang algol68># Find Munchausen Numbers between 1 and 5000 #
# note that 6^6 is 46 656 so we only need to consider numbers consisting of 0 to 5 #
 
# table of Nth powers - note 0^0 is 0 for Munchausen numbers, not 1 #
[]INT nth power = ([]INT( 10, 1, 2 * 2, 3 * 3 * 3, 4 * 4 * 4 * 4, 5 * 5 * 5 * 5 * 5 ))[ AT 0 ];
 
INT number := 0;
FOR d1 FROM 0 TO 5 WHILE number < 5001 DO
INT d1 part = d1 * 1000;
FOR d2 FROM 0 TO 5 DO
Line 22 ⟶ 23:
INT d3 part = d3 * 10;
FOR d4 FROM 0 TO 5 DO
INT digit power sum := 0;nth power[ d1 ]
IF d1 > 0 THEN
digit power sum := nth power[ d1 ]
+ nth power[ d2 ]
+ nth power[ d3 ]
+ nth power[ d4 ];
ELIFINT number = d1 part + d2 >part + d3 part 0+ THENd4;
digit power sum := nth power[ d2 ]
+ nth power[ d3 ]
+ nth power[ d4 ]
ELIF d3 > 0 THEN
digit power sum := nth power[ d3 ]
+ nth power[ d4 ]
ELSE
digit power sum := nth power[ d4 ]
FI;
INT number = d1 part + d2 part + d3 part + d4;
IF digit power sum = number THEN
print(IF (number whole( number,> 0 ), newline ) )THEN
print( ( whole( number, 0 ), newline ) )
IF d1 > 0 THENFI
FI
OD
Line 51 ⟶ 42:
3435
</pre>
 
 
=={{header|AppleScript}}==
3,049

edits