重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

題の通りです。
200以下の素数を全て表示するプログラムをfor文を使って作りたいのですがどうすればいいのか全く検討がつきません。

自分でもいろんなperlに関するサイトを見ましたが、わからなすぎて困っています。

参考になるサイトでもいいので、
教えてください。

A 回答 (3件)

Perlならやはり正規表現でしょう。



my @primes;

for my $num ( 2..200 ) {
push @primes, $num if (1 x $num) !~ /^(11+)\1+$/;
}

print join q{ }, @primes;
    • good
    • 0

@primes = qw(2 3 5 ...); # 200以下の素数を全部書いておく.


for (@primes) {
print "$_\n";
}
    • good
    • 0

・単純な方法でいきますと


n が素数かどうかを判定するために
1をのぞくn未満の数すべてで割ってみて、全て割り切れなかったら
素数である。
perlは詳しくないですが、剰余があれば簡単ですね。

・高速化するには
奇数だけにしてみたり
割る数を√n 未満までにしたり
小さい数から順に調べるとして、割る数をそれまでに求めた素数
にしたりすれば良いでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!