087 Prime power triples.pl 502 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/perl
  2. # Author: Trizen
  3. # Edit: 21 March 2023
  4. # https://github.com/trizen
  5. # https://projecteuler.net/problem=87
  6. # Runtime: 1.097s
  7. use 5.010;
  8. use strict;
  9. use ntheory qw(:all);
  10. my @seen;
  11. my $count = 0;
  12. my $limit = 50e6;
  13. foreach my $p (@{primes(rootint($limit, 2))}) {
  14. foreach my $q (@{primes(rootint($limit - $p**2, 3))}) {
  15. foreach my $r (@{primes(rootint($limit - $p**2 - $q**3, 4))}) {
  16. ++$count if !$seen[$p**2 + $q**3 + $r**4]++;
  17. }
  18. }
  19. }
  20. say $count;