Perlコーディング初心者質問スレ Part 54
有理数で無限小数の場合、必ず循環小数になる事を利用して
use bignum (a => 50);
sub is_terminating($) {
(my $n = shift) =~ s/0*$//;
return not ($n =~ /\.\d*(\d+)\1/);
}
for my $i (1..25) {
my $n = 45 / $i;
my $s = is_terminating($n) ? "terminating" : "non-terminating";
print "45/$i is $s.\n";
}
というのはどーお?