×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。


C言語

MENU

プロフィール

プロフィール画像
■ 某国立大学に通う大学生です。
■ サッカー大好き
■ プログラミングを始めてまだ一年です。
>>プロフィールの詳細


C言語


〜1から1000までの素数を表示するプログラムを作ろう〜

必要な文法[if文,剰余の計算]
考え方
ソースプログラム
演習問題

必要な文法[if文,剰余の計算]


if文
if(条件式){
  式;
}else if(条件式){
  式;
}else{
  式;
}
else ifいくつでも続ける事が出来ます。 条件が一個の場合、else if以下を省略する事も出来ます。
余りを求める
a%b
aをbで割った余りを求める事が出来る。

考え方


いきなり素数と言われても難しいかもしれませんが考え方はシンプルです。
1から順番に約数があるかないかを確かめれば良いのです。
考え方は以下のようになります。
1.まずループ条件用のint型変数iを定義します。
2.for文により1から1000まで1刻みでループさせます。
3.その中でiをiより小さい数全ての数でそれぞれ割った余りを求めます。

ソースプログラム



#include <stdio.h>
int main(void){
    int i,j,k;
    for(i=1;i<=1000;i++){
    k=0;
    for(j=2;j<=i;j++){
        if(i%j==0){
            k=1;
        }
    }
    if(k==0){
    printf("%d ",i);
    }
    }
    printf("\n");
    return 0;
}

まず変数iをfor文により1から1000まで1刻みでループさせます。
次に変数kに0を代入します。
kにはiが更新される度に0が代入される事になります。
7行目であるiについて、2からi-1までの整数で順番に割っています。
そしてその余りが0になるかどうかをif文で毎回確認し
もし一回でも余りがゼロになればkには1が代入されます。
そして11行目でfor文を抜け、もしkが0であれば
約数がない、つまり素数なので画面に出力します。

実行結果

1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997
理解できましたか。
もし理解できたら以下のプログラムにチャレンジしてみてください。

演習問題


上のプログラムをwhile文を使って書き換えましょう。

C言語〜1から1000までの素数を表示するプログラムを作ろう〜トップへ▲
C言語〜サンプルプログラム〜トップへ▲

ホームページ テンプレート フリー">

Design by