Skip to content

Instantly share code, notes, and snippets.

@ncfavier
Last active January 11, 2023 22:43
Show Gist options
  • Save ncfavier/5c820ededcc272c5507dd521e71e6f47 to your computer and use it in GitHub Desktop.
Save ncfavier/5c820ededcc272c5507dd521e71e6f47 to your computer and use it in GitHub Desktop.
{ size ? 1000 }: with builtins;
let
enumerate = genList (i: i + 1);
sum = foldl' add 0;
divides = n: k: n / k * k == n;
factors = n: filter (divides n) (enumerate (n / 2));
perfect = n: sum (factors n) == n;
in
filter perfect (enumerate size)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment