File: project_euler_211.pl

package info (click to toggle)
libmath-prime-util-perl 0.60-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,380 kB
  • ctags: 2,261
  • sloc: perl: 22,565; ansic: 8,478; python: 24; makefile: 12
file content (17 lines) | stat: -rw-r--r-- 373 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env perl
use warnings;
use strict;
use Math::Prime::Util qw/:all/;

# Brute force using MPU's divisor_sum.
# MPU v0.38   1.5 minutes
# Pari        3.5 minutes:
#   s=0; for(n=1,64000000-1,if(issquare(sigma(n,2)),s=s+n;))

my $n = shift || 64_000_000;

my $sum = 0;
foreach my $i (0 .. $n-1) {
  $sum += $i if is_power( divisor_sum($i, 2) , 2);
}
print "$sum\n";