077 Prime summations -- unoptimized.pl 639 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Website: https://github.com/trizen
  5. # https://projecteuler.net/problem=77
  6. # Runtime: 14.556s
  7. use 5.010;
  8. use strict;
  9. use warnings;
  10. use ntheory qw(primes);
  11. use List::Util qw(sum0);
  12. sub count {
  13. my ($n, $primes, $solution) = @_;
  14. my $sum = sum0(@$solution);
  15. ($sum == $n) ? 1
  16. : ($sum > $n || !@{$primes}) ? 0
  17. : (count($n, $primes, [@{$solution}, $primes->[0]]) +
  18. count($n, [@{$primes}[1 .. $#{$primes}]], $solution));
  19. }
  20. foreach my $i (4 .. 1e6) {
  21. if (count($i, primes(1, $i - 2), []) > 5000) {
  22. say $i; last;
  23. }
  24. }