source code for "files/pe/pe_042.pl"
return to portfolio
- #!/usr/bin/perl
- use strict;
- use warnings;
- # triangle
- sub compute_triangle {
- my $sum = 0;
- for my $k (map { ord($_)-64 } split //, shift) {
- $sum += $k;
- }
- return $sum;
- }
- # file handle
- open WORDS, "files/words.txt";
- # init
- my ($count) = 0;
- my @words = split ',', <WORDS>;
- @words = map { substr $_, 1, length($_) - 2 } @words;
- # work
- for (@words) {
- my $tri = compute_triangle $_;
- my $sol = (-1 + sqrt(1+8*$tri))/2;
- $count ++ if $sol == int $sol && $sol >= 0;
- }
- print $count;
- close WORDS;