素数を出力する
今回は、私が今持っている知識だけで、素数を出力できるのか考えた。
範囲を決めないと無限に出てきてしまうので、ひとまず1より大きくて10より小さい素数を出力できるか考えた。
結果は以下の通り。
// 2よりも大きくて10よりも小さい数字それぞれを、同じ範囲のそれぞれの数字で割り切れる数字を抽出
for ($i = 2; $i <= 10; $i++) {
for ($j = 1; $j <= 10; $j++) {
if ($i % $j === 0) {
$nums[$i][] = $j;
}
}
}
// 抽出した数字の中で、1と自身の数字でのみ割り切れる数字を抽出(割り切れた数字の数が2のもの)
for ($i = 2; $i <= 10; $i++) {
$count = count($nums[$i]);
if ($count === 2) {
$n_num[] = $i;
}
}
// 個数を数えて出力
$n_count = count($n_num);
for ($i = 0, $i < $n_count, $i++) {
echo($n_num[$i])." ";
}
// 以下出力結果です。
2 3 5 7
結論としては、無事、1より大きくて10より小さい素数を出力することができました。これが、100より小さい場合でも対応はできていたので、問題ないと思う。
目的を持ってプログラムを書いてみると、自分にできることとできないことが明確になるので、もっと色々知識を身につけたいを思えた。
恐らく、今日私がやってみた方法は、あくまで私が今持っている知識で記述することが可能なのか、というテーマがあったので、本来ならば圧倒的に効率的な記述があるのだと思う。