# 約数の個数と和 Divisor # 引数 自然数 ($X) # 戻り値 約数の個数と和 (@Divisor) sub DIVISOR{ my ($X) = @_; my @Divisor = (); my $Sum = 0; my $Count = 0; my $Limit = 0; # 自然数の確認 if($X < 2){ return 0; } $Limit = int($X) / 2; for(my $i = 1; $i <= $Limit; $i++){ if(($X % $i) == 0){ # 約数の個数 $Count++; # 約数の和 $Sum += $i; } } # 約数の個数と和 Divisor # [0] = 約数の個数 [1] = 約数の和 $Divisor[0] = $Count + 1; $Divisor[1] = $Sum + int($X); return @Divisor; }