プログラミングのお題 ..
[2ch|▼Menu]
59:デフォルトの名無しさん
19/05/20 20:08:45.44 HD7QqTZv.net
>>56 スマソ、ケアレスミスった、繋ぐ演算子は+ => *だた…orz
sub p {
 $h = int $n/2;
 for ($i=2; $i<=$h; $i++) {
  $s[$i] = 1 unless exists $s[$i];
  do {$s[$i*$_] = 0 for 2..int $h/$i} if $s[$i];
 }
 @p = grep{$s[$_]} 2..$h;
}
sub f {
 my $i = shift;
 my $h = int $i/2;
 for $j (grep{$_ <= $h} @p) {
  return ($j,f($i/$j)) if 0 == $i % $j;
 }
 $i
}
for $n (qw{28 2002 216653}) {
 p;
 my %f; $f{$_}++ for f($n);
 @f = map{$_ . (1 < $f{$_} and "^$f{$_}")} sort{$a<=>$b} keys %f;
 $" = '*';
 print "$n => @f\n";
}
実行
~ $ perl 13_988.pl
28 => 2^2*7
2002 => 2*7*11*13
216653 => 216653


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1839日前に更新/83 KB
担当:undef