193 Squarefree Numbers.pl 453 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 09 February 2017
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=193
  7. # Runtime: 16.807s
  8. use 5.010;
  9. use strict;
  10. use integer;
  11. use ntheory qw(moebius sqrtint);
  12. sub squarefree_count {
  13. my ($n) = @_;
  14. my $count = 0;
  15. foreach my $k (1 .. sqrtint($n)) {
  16. $count += moebius($k) * $n / ($k * $k);
  17. }
  18. return $count;
  19. }
  20. say squarefree_count(1 << 50);