073 Counting fractions in a range.pl 523 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/perl
  2. # Author: Daniel "Trizen" Șuteu
  3. # Date: 15 August 2016
  4. # License: GPLv3
  5. # Website: https://github.com/trizen
  6. # https://projecteuler.net/problem=73
  7. # Runtime: 2.695s
  8. use 5.010;
  9. use strict;
  10. use ntheory qw(gcd);
  11. sub count_frac {
  12. my ($max_d, $min, $max) = @_;
  13. my $count = 0;
  14. foreach my $n ($min + $max .. $max_d) {
  15. foreach my $k (int($n / $min) + 1 .. int(($n - 1) / $max)) {
  16. ++$count if (gcd($n, $k) == 1);
  17. }
  18. }
  19. $count;
  20. }
  21. say count_frac(12_000, 3, 2);