187 Semiprimes.pl 576 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Website: https://github.com/trizen
  5. # How many composite integers, n < 10^8, have precisely two, not necessarily distinct, prime factors?
  6. # https://projecteuler.net/problem=187
  7. # Runtime: 2.402s
  8. use 5.010;
  9. use strict;
  10. use warnings;
  11. use ntheory qw(primes);
  12. my $limit = 10**8;
  13. my $primes = primes(0, $limit / 2);
  14. my $count = 0;
  15. my $end = $#{$primes};
  16. foreach my $i (0 .. $end) {
  17. foreach my $j ($i .. $end) {
  18. $primes->[$i] * $primes->[$j] >= $limit ? last : ++$count;
  19. }
  20. }
  21. say $count;