FC2ブログ

# 試し割り法 Trial Division
# 引数 自然数 ($NaturalNumber)
# 戻り値 試し割り法 (@PrimeFactorization)
sub TRIALDIVISION{
my ($NaturalNumber) = @_;
my @PrimeFactorization = ();
my $Sqrt = 0;
my $i = 2;
my $Position = 0;

# 自然数の確認
if($NaturalNumber < 1){
return 0;
}

$NaturalNumber = int($NaturalNumber);
$Sqrt = sqrt($NaturalNumber);

# 試し割り法 Trial Division
while($i <= $Sqrt){
if(($NaturalNumber % $i) == 0){
$NaturalNumber = $NaturalNumber / $i;
$Sqrt = sqrt($NaturalNumber);

# 素因数分解 Prime Factorization
$PrimeFactorization[$Position] = $i;

# 配列の位置
$Position++;
}else {
$i = ($i == 2 ? ($i + 1) : ($i + 2));
}
}

# 素因数分解 Prime Factorization
$PrimeFactorization[$Position] = $NaturalNumber;

return @PrimeFactorization;
}


参考URL
素因数分解 - Wikipedia
素因数分解 - 高精度計算サイト
Trial division - Wikipedia, the free encyclopedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS