今日は素因数分解
#!/usr/bin/perl -w use strict; sub primes{ my ($n) = @_; my @searchList = 2..$n; my @primes; while(@searchList and $searchList[@searchList-1] > $n**0.5){ my $prime = shift @searchList; push @primes, $prime; @searchList = grep{$_ % $prime!=0} @searchList; } push @primes, @searchList; return @primes; } my ($n) = @ARGV; sub prime_decomposition{ my ($n) = @_; my @primes = primes($n); my @result; for my $p(@primes){ while($n % $p == 0){ $n /= $p; push @result, $p } } return @result; } print join(',',prime_decomposition($n)),"\n";
prime-decomposition.plに保存したら
> prime-decomposition.pl 2015
5,13,31
みたいになる。