GCM, LCM

GCM, LCM を計算する Perl のサブルーチンです。

プログラムの説明

  1. エディタで Sub_Gcm.pl を作成して C:\DATA\Perl に保存して下さい。
    ($gcm, $lcm) = &glcm(32, 24);
    print "GCM(32,24):$gcm,  LCM(32,24):$lcm\n";
    
    sub glcm
    {   ($m, $n) = @_;
        $lcm= $m * $n;
        while($m!=$n)
        {  if ($m>$n)   {  $m-= $n;  }
           else         {  $n-= $m;  }
        }
        $lcm= $lcm/$m; 
        return ($m, $lcm);
    }
    
  2. 【実行画面】
    Sub_Gcm.pl を実行すると、32,24 の GCM と LCM が印字されます。
    C:\DATA\Perl>perl Sub_Gcm.pl
    GCM(32,24):8,  LCM(32,24):96
    
    C:\DATA\Perl>
    
  3. Perl では、ユーザーが定義する関数をサブルーチンと呼ぶようです。
    サブルーチン &glcm(); を呼び出すと、GCM と LCM の配列がリターンされます。
    サブルーチンの呼び出しは[&]で始めます。
    ($gcm, $lcm) = &glcm(32, 24); で、GCM を $gcm に、LCM を $lcm に格納します。
    ($gcm, $lcm) = &glcm(32, 24);
    print "GCM(32,24):$gcm,  LCM(32,24):$lcm\n";
    
  4. サブルーチン glcm です。
    サブルーチンは sub で始めます。
    ($m, $n) = @_; で渡されてパラメータを、変数 $m, $n に格納します。
    「@_」は、サブルーチンに渡された配列を保存する変数です。
    GCM と LCM を計算して ($m, $lcm) の配列をリターンします。
    GCM と LCM の説明は Java Script の Class を参照して下さい。
    sub glcm
    {   ($m, $n) = @_;
        $lcm= $m * $n;
        while($m!=$n)
        {  if ($m>$n)   {  $m-= $n;  }
           else         {  $n-= $m;  }
        }
        $lcm= $lcm/$m; 
        return ($m, $lcm);
    }
    

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(Perl)