素数を求めるプログラムについて

[戻る]
りく 2003/12/16(火) 01:38:00
好きな数字(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);
    }
}
よろしくお願いいたします。

アイススケーター 2003/12/16(火) 07:58:27
 素数を求めるには、まず何をすればよいかを考えましょう。

 検査する値を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;

 ということで、りくさんのプログラムは解析不能の状態です。

 もし、りくさんが初心者で、他人に教えてもらいたい場合は、最低限のコメントを入れてく
ださい。

 多分授業の宿題でしょうが、プログラムの初心者のフォローをする方も大変なんですよ。

参考:割り切れるかどうかは %(余り)を利用してみて下さい。

古いスレッドには追加発言できません。