好きな数字(n)を1つ入力し1からnまでの素数を求めるといった感じのをプログラムに慣
れるために作っているのですがうまくいきません。皆様には簡単すぎる話題で申し訳な
いのですがどうか助言をお願いします。
ちなみに私はこんな風にかいています。
#include<stdio.h>
main()
{
int a,i,n;
scanf(%d,&n);
printf(素数\n,&n);
for(i=1;i<=n;i++){
if(a==i/n||a==i/1);
if(!! a==1<i);
a=i;
printf(%d\n,a);
}
}
よろしくお願いいたします。
素数を求めるには、まず何をすればよいかを考えましょう。
検査する値をnとた場合、2~[ルートn]の整数で割り切れなかったら素数となります。
またこの検査を少なくしようとすれば(ロジックが少し複雑になる)2~[ルートn]の素数
で割り切れなかったら素数となります。
どちらを選ぶかはりくさんの自由です。
さて、りくさんのプログラムを見ていると、forループが1つしかありません。最低でも
2つのforループが必要でしょう。
あと下記のロジックが何をしたいのかまったく不明です。
if(a==i/n||a==i/1);
a==i/nではnがaになるまで0でしょう
a==i/1はa==iで良いはず
if(!! a==1<i);
こんなロジック見たことありません。
a=i;
ということで、りくさんのプログラムは解析不能の状態です。
もし、りくさんが初心者で、他人に教えてもらいたい場合は、最低限のコメントを入れてく
ださい。
多分授業の宿題でしょうが、プログラムの初心者のフォローをする方も大変なんですよ。
参考:割り切れるかどうかは %(余り)を利用してみて下さい。