Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
27
Task/Happy-numbers/SequenceL/happy-numbers.sequencel
Normal file
27
Task/Happy-numbers/SequenceL/happy-numbers.sequencel
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import <Utilities/Math.sl>;
|
||||
import <Utilities/Conversion.sl>;
|
||||
|
||||
main(argv(2)) := findHappys(stringToInt(head(argv)));
|
||||
|
||||
findHappys(count) := findHappysHelper(count, 1, []);
|
||||
|
||||
findHappysHelper(count, n, happys(1)) :=
|
||||
happys when size(happys) = count
|
||||
else
|
||||
findHappysHelper(count, n + 1, happys ++ [n]) when isHappy(n)
|
||||
else
|
||||
findHappysHelper(count, n + 1, happys);
|
||||
|
||||
isHappy(n) := isHappyHelper(n, []);
|
||||
|
||||
isHappyHelper(n, cache(1)) :=
|
||||
let
|
||||
digits[i] := (n / integerPower(10, i - 1)) mod 10
|
||||
foreach i within 1 ... ceiling(log(10, n + 1));
|
||||
newN := sum(integerPower(digits, 2));
|
||||
in
|
||||
false when some(n = cache)
|
||||
else
|
||||
true when n = 1
|
||||
else
|
||||
isHappyHelper(newN, cache ++ [n]);
|
||||
Loading…
Add table
Add a link
Reference in a new issue