プログラム基礎ガイド

初級1の回答解説

#include<stdio.h>

main(){
int i,n;
printf("数字を入れて");
scanf("%d",&n);
printf("素数");
for(i=2;i<=n/2;i++){
if(n%i==0){
printf("ではない\n");
break;
}
}
return 0;
}

入力した数字が素数なら「素数」と返し、素数でないなら「素数ではない」と返します。

一見、素数であるかを判別するようですが、すべての数字に素数であるかを関係なく
「素数」と表示し、素数でないとわかった時点で、「ではない」と付け加えているので
す。チェックに引っかからなければ「素数」で終わります。

素数ではないことをチェックしているのはforの中の「NがIで割り切れる」というところで
す。
引っかかった場合「ではない」と1回だけ表示すればいいのでbreakで繰り返しを終わ
らせます。そうしないと、12を入力したとき2と3と4と6で割り切れるので「ではない」
が4個も出て間抜けな表示になってしまいます。

思ったよりも意外と短いのではないでしょうか?



トップページへ
1、ブラックボックス化されたコンピューターの中身をのぞく!!
2、プログラム学習上達法伝授!!
3、初めてのプログラム
4、ポインタを身に着けよう
練習問題
練習問題の回答例解説


アクセスアップ・SEO対策


プログラム基礎
ガイド
since 2005 /4 /??

トップページへ

 1、ブラックボックス 化されたコ
ンピューターの中身をのぞく!!

 2、プログラム学習上達法伝
授!!

 3、初めてのプログラム

 4、ポインタを身に着けよう

練習問題
管理者ブログ



上のBBS(木の看板)に質
問でも何でもいろいろ書き
込んで見てください。