熊本教育ネットワークユニオン

活動の報告と相談の窓口です。またブログ担当者の学習の跡でもあります。過去の記事をご覧になるときは下のメニュー欄をクリックください

MENU

素数とプログラム(3)

 

素数とプログラム(3)

 前回、100までの素数Pythonというプログラム言語でその定義から求めた。今度はC言語でのプログラムを学ぼう

 以下にそのプログラムを書く

/*

C 言語で 100 までの素数を書き出すプログラム

エラトステネスの篩ではなく、1 個 1 個確認していく方法

*/

#include <stdio.h>

int main()

{

 int i, j;

 for( i=2;i<=100;i++ ) {

  for(j=2;j<=i;j++){

   if( i%j==0 ) {

    break;

   }

 

  }

  if( i==j )

   printf("%3d\n", i);

 }

 return 0;

}

 

下の部分

/*

  C言語で100までの素数を書き出すプログラム

  エラトステネスの篩ではなく、1個1個確認していく方法

 */

プログラムと関係ない、説明部分。

/*  と */に囲まれた部分は、プログラムではなく、ヒト(自分や他人)が見て、参考にする説明の部分(コメント)。 // も使える。//の場合は続く1行はすべてコメント。

 

#include <stdio.h>

#include <stdio.h>はC言語の標準ライブラリィを使いなさいよ(使わせて)ということらしい。

#は何でついているのだろう? それは、プログラムの前処理=プリプロセスをしますよ、という意味。#の作業の例に#defineなどがある。

 

int main()

{  

     プログラム  

 }

この部分がC言語プログラミングのメインで、main関数。{ から }までを実行しなさいということ。

 

{と}の間は次の記載。

int i, j;

 for( i=2;i<=100;i++ ) {

  for(j=2;j<=i;j++){

   if( i%j==0 ) {

    break;

   }

 

  }

  if( i==j )

   printf("%3d\n", i);

}

 return 0;

}

 

またここを一行ずつ考える

int i, j;  はiとjは、インテジャInteger、「整数です」ということ。ほんとは「整数型」らしい。

forは「今から繰り返しの計算をするよ」ということ(forは英語を和訳すれば・・のために、・・・に向かってですが・・・)。

i=2;i<=100;i++

iは2から初めて一つずつ加えて計算に使いなさい(100まで)。(i=i+1と同じ。i=i+1;が、i += 1 ;さらにi++ ; となった)

{  {のなかに{内側から { }を考えると良い。

for(j=2;j<=i;j++)

これも同じでjは2から初めて一つずつ加えて計算に使いなさい。

if( i%j==0 ) {

      break;

%は割った余り(+,-,*,/の四則の他、**の累乗や%の割り算のあまりなどがある)。i%jはi÷jの余り。

if( i%j==0 )は、もしiがjに割り切れたら(==は右と左を比べる:比較演算子、=は変数に代入)ということ。そして割り切れたら「break;」つまり計算をやめる。

 

 if( i==j )

      printf("%3d ", i);

もしとうとう割れる数を見つけることが出来なかったら、((iは素数だから)⇦コンピュータはそうは考えないが)プリント(C言語の場合「printf」と命令する)しなさい。

 

ということ。合っているかな??やっとここまでできた。