File: project_euler_214.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 (21 lines) | stat: -rw-r--r-- 370 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env perl
use warnings;
use strict;
use Math::Prime::Util qw/forprimes euler_phi/;

my $limit = shift || 40000000;
my $cl = shift || 25;

my @c;
sub totchainlen {
  my $n = shift;
  return $n if $n <= 2;
  $c[$n] //= 1 + totchainlen(euler_phi($n));
  return $c[$n];
}

my $sum = 0;
forprimes {
  $sum += $_ if totchainlen($_) == $cl;
} $limit;
print "$sum\n";