50以下の素数を求める

二重のループで、50以下の素数を求めて表示します。

プログラムの作成

ホームページの作成方法がわかった所で、PHP のプログラムの基礎を学びます。
コンソールモードで PHP を動かすときはインストールして下さい。
PHP のインストールは PHP Install を参照して下さい。
sosu.php のソースコードを Shift-JIS でタイプして c:\DATA\PHP\ に格納して下さい。
<?php
for($n=2; $n<50; $n++)
{   for($i=floor($n/2); $n%$i!=0; $i--);
    if ($i==1)  print("素数 : " . $n . "\r\n");
}
?>

【実行画面】
コマンドプロンプトを起動して sosu.php をコンパイルします。
コマンドのタイプは大文字でも小文字でも構いません。
C:\DATA\PHP で作業するときは PATH の設定が必要です。
PATH の設定は Hello PHP を参照して下さい。
C:\Windows\System32>cd c:\DATA\PHP
C:\DATA\PHP>php sosu.php
素数 : 2
素数 : 3
素数 : 5
素数 : 7
素数 : 11
素数 : 13
素数 : 17
素数 : 19
素数 : 23
素数 : 29
素数 : 31
素数 : 37
素数 : 41
素数 : 43
素数 : 47
PATH が設定されていないときは C:\BIN\PHP で作業します。
C:\Windows\System32>cd c:\BIN\PHP
C:\BIN\PHP>php C:\DATA\PHP>sosu.php

プログラムの説明

  1. 素数とは「2以上の1と自分自身以外に約数を持たない整数」のことを言います。
    今回のプログラムは二重のループになっています。
    外側のループは素数を調べる範囲(2~49)で回ります。
    PHP の変数名は $ で始めます。
    C言語のように変数に int, float, char, string などの型はありません。
    for($n=2; $n<50; $n++)
    {    :
         :
    }
    
  2. 内側のループは $i=floor($n/2) から始めて $n を割り切る $i が見つかるまでループします。
    floor() は小数点以下を切り捨てる関数です。
    $i は毎回デクリメントされるので $n がどのような整数値を取ろうとも $i==1 になれば必ず割り切れることになります。
    for 文自身が「;」で終わっていることに注目して下さい。
    今回は $n を割り切る $i を見つけることが目的で、ループの中{カッコ内}に記述するコードが何もありません。
    「$n%$i」は $n を $i を割った余りです。
    {   for($i=floor($n/2); $n%$i!=0; $i--);
    
  3. 内側のループから抜け出した時に「$i の値が1のときは $n が素数」であることがわかります。
    print 文の ( ) はあっても無くても構いません。
    「.」は文字列を結合する演算子です。
        if ($i==1)  print("素数 : " . $n . "\r\n");
    

前田稔の超初心者のプログラム入門
PHP Program