読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Project Euler - Problem 29

Problem 29

2 <= a <= 100, 2 <= b <= 100において, a ** bによって生成される数列の異なる項の数はいくつかを求める問題.

答えを配列にpushしていくと, 「同じ項」を除去するのが面倒なので, 連想配列に格納していく形にしました.

use strict;
use warnings;
use bigint;

my %term;
my $max = 100;

for my $A (2..$max) {
    for my $B (2..$max) {
        $term{$A ** $B} = 1;
    }
}

print scalar keys %term;
print "\n";

こんな感じでいかがでしょう.