Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
27
Task/Munchausen-numbers/Draco/munchausen-numbers.draco
Normal file
27
Task/Munchausen-numbers/Draco/munchausen-numbers.draco
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
proc munchausen(word n) bool:
|
||||
/* d^d for d>6 does not fit in a 16-bit word,
|
||||
* it follows that any 16-bit integer containing
|
||||
* a digit d>6 is not a Munchausen number */
|
||||
[7]word dpow = (1, 1, 4, 27, 256, 3125, 46656);
|
||||
word m, d, sum;
|
||||
|
||||
m := n;
|
||||
sum := 0;
|
||||
while
|
||||
d := m % 10;
|
||||
m>0 and d<=6
|
||||
do
|
||||
m := m/10;
|
||||
sum := sum + dpow[d]
|
||||
od;
|
||||
d<=6 and sum=n
|
||||
corp;
|
||||
|
||||
proc main() void:
|
||||
word n;
|
||||
for n from 1 upto 5000 do
|
||||
if munchausen(n) then
|
||||
writeln(n)
|
||||
fi
|
||||
od
|
||||
corp
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
# sum power of digits
|
||||
val .spod = f(.n) fold f{+}, map(f .x^.x, s2n toString .n)
|
||||
val .spod = fn(.n) fold fn{+}, map(fn(.x) .x^.x, s2n string .n)
|
||||
|
||||
# Munchausen
|
||||
writeln "Answers: ", filter f(.n) .n == .spod(.n), series 0..5000
|
||||
writeln "Answers: ", filter fn(.n) .n == .spod(.n), series 0..5000
|
||||
|
|
|
|||
15
Task/Munchausen-numbers/SETL/munchausen-numbers.setl
Normal file
15
Task/Munchausen-numbers/SETL/munchausen-numbers.setl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
program munchausen_numbers;
|
||||
loop for n in [1..5000] | munchausen n do
|
||||
print(n);
|
||||
end loop;
|
||||
|
||||
op munchausen(n);
|
||||
m := n;
|
||||
loop while m>0 do
|
||||
d := m mod 10;
|
||||
m div:= 10;
|
||||
sum +:= d ** d;
|
||||
end loop;
|
||||
return sum = n;
|
||||
end op;
|
||||
end program;
|
||||
Loading…
Add table
Add a link
Reference in a new issue