Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save masak/368600 to your computer and use it in GitHub Desktop.
Save masak/368600 to your computer and use it in GitHub Desktop.
$ cat sums-of-squares
# finds and lists all numbers which can be written as the sum of two
# squares in more than two ways
sub issq($n) { sqrt($n) == floor(sqrt($n)) }
sub sqsum($n) { gather for 1..sqrt($n)/2 { take $_ if issq($n - $_ * $_) } }
my $n = 1;
while ++$n {
next unless (my @s = sqsum($n)) > 2;
say join ' = ', $n, map { my $sq = $_ * $_; "$sq + {$n - $sq}" }, @s;
}
$ perl6 sums-of-squares
1105 = 16 + 1089 = 81 + 1024 = 144 + 961
1450 = 81 + 1369 = 225 + 1225 = 361 + 1089
1625 = 25 + 1600 = 256 + 1369 = 400 + 1225
1885 = 36 + 1849 = 121 + 1764 = 441 + 1444
2125 = 9 + 2116 = 100 + 2025 = 361 + 1764
2210 = 1 + 2209 = 361 + 1849 = 529 + 1681
2405 = 4 + 2401 = 196 + 2209 = 289 + 2116
2425 = 121 + 2304 = 400 + 2025 = 576 + 1849
2465 = 64 + 2401 = 256 + 2209 = 529 + 1936
2650 = 49 + 2601 = 441 + 2209 = 625 + 2025
3250 = 1 + 3249 = 225 + 3025 = 441 + 2809
3445 = 81 + 3364 = 196 + 3249 = 529 + 2916
3485 = 4 + 3481 = 121 + 3364 = 676 + 2809
3650 = 169 + 3481 = 625 + 3025 = 841 + 2809
3925 = 81 + 3844 = 676 + 3249 = 900 + 3025
4205 = 361 + 3844 = 484 + 3721 = 841 + 3364
4420 = 64 + 4356 = 324 + 4096 = 576 + 3844
4505 = 16 + 4489 = 784 + 3721 = 1024 + 3481
4625 = 1 + 4624 = 400 + 4225 = 529 + 4096
4745 = 121 + 4624 = 256 + 4489 = 1024 + 3721
4810 = 49 + 4761 = 841 + 3969 = 1089 + 3721
4930 = 169 + 4761 = 441 + 4489 = 961 + 3969
5125 = 225 + 4900 = 900 + 4225 = 1156 + 3969
5185 = 1 + 5184 = 144 + 5041 = 1089 + 4096
5330 = 1 + 5329 = 289 + 5041 = 841 + 4489
5450 = 121 + 5329 = 961 + 4489 = 1225 + 4225
5525 = 49 + 5476 = 196 + 5329 = 484 + 5041 = 625 + 4900
5785 = 9 + 5776 = 1024 + 4761 = 1296 + 4489
5800 = 324 + 5476 = 900 + 4900 = 1444 + 4356
6205 = 121 + 6084 = 729 + 5476 = 1444 + 4761
6290 = 49 + 6241 = 361 + 5929 = 961 + 5329
6409 = 9 + 6400 = 784 + 5625 = 1225 + 5184
6500 = 100 + 6400 = 1024 + 5476 = 1600 + 4900
6565 = 4 + 6561 = 324 + 6241 = 1089 + 5476
6625 = 64 + 6561 = 225 + 6400 = 1296 + 5329
6850 = 289 + 6561 = 1225 + 5625 = 1521 + 5329
7085 = 196 + 6889 = 361 + 6724 = 1156 + 5929
7225 = 169 + 7056 = 1296 + 5929 = 1600 + 5625
7540 = 144 + 7396 = 484 + 7056 = 1764 + 5776
7565 = 169 + 7396 = 676 + 6889 = 841 + 6724
7585 = 16 + 7569 = 529 + 7056 = 1024 + 6561
7625 = 400 + 7225 = 1225 + 6400 = 1849 + 5776
7685 = 289 + 7396 = 961 + 6724 = 1444 + 6241
7930 = 9 + 7921 = 361 + 7569 = 1369 + 6561
8125 = 25 + 8100 = 729 + 7396 = 900 + 7225
8245 = 324 + 7921 = 676 + 7569 = 1521 + 6724
8410 = 841 + 7569 = 1521 + 6889 = 1849 + 6561
8425 = 144 + 8281 = 1369 + 7056 = 2025 + 6400
8450 = 169 + 8281 = 529 + 7921 = 1225 + 7225
8500 = 36 + 8464 = 400 + 8100 = 1444 + 7056
8825 = 361 + 8464 = 1600 + 7225 = 1936 + 6889
8840 = 4 + 8836 = 1444 + 7396 = 2116 + 6724
8905 = 256 + 8649 = 441 + 8464 = 1849 + 7056
9010 = 361 + 8649 = 729 + 8281 = 1089 + 7921
9061 = 36 + 9025 = 225 + 8836 = 961 + 8100
9250 = 225 + 9025 = 1681 + 7569 = 2025 + 7225
9265 = 49 + 9216 = 1521 + 7744 = 2209 + 7056
9425 = 16 + 9409 = 400 + 9025 = 961 + 8464 = 1681 + 7744
9605 = 1 + 9604 = 196 + 9409 = 2209 + 7396
9620 = 16 + 9604 = 784 + 8836 = 1156 + 8464
9685 = 81 + 9604 = 1764 + 7921 = 2116 + 7569
9700 = 484 + 9216 = 1600 + 8100 = 2304 + 7396
9860 = 256 + 9604 = 1024 + 8836 = 2116 + 7744
9945 = 144 + 9801 = 729 + 9216 = 1296 + 8649
10250 = 49 + 10201 = 841 + 9409 = 1225 + 9025
^C
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment