100未満の素数を表示するには
「0~99までの配列を用意し、100の平方根である10までの素数の倍数を素数でない数としていく。」
実行例の一部「2の倍数を消去:468…96 98」
というように次は3の倍数、5の倍数、7の倍数を表示させ、それらに該当しないのを表示せよという問題です。
ヒントとして↓がもともと書かれていたんですが、ヒントがよくわかりません。
2の倍数を表示し消去する方法を教えてください。
#include<stdio.h>
int main()
{
int i,j,prime[100];
for (i=0;i<N;i++) prime[i]=1; //全ての要素を素数の候補とする
prime[0]=prime[1]=0; //0と1は素数ではない
printf("\n100未満の素数を出力\n");
return 0;
}
No.1ベストアンサー
- 回答日時:
ヒント1
2以外の2の倍数を100まで表示
for ( i = 2; i * 2 <= 100; i++)
{
printf("%d ", i * 2);
}
ヒント2
消去というか0を代入
prime[2以外の2の倍数] = 0;
この回答への補足
for (i=0;i<N;i++) prime[i]=1; //全ての要素を素数の候補とする
prime[0]=prime[1]=0; //0と1は素数ではない
このNは適当に変えていいってことですか?
宣言されてないですし…。
あとfor()のあとは{がつくと思うんですが、↑の場合
prime[i]=1;
prime[0]=prime[1]=0;
これが繰り返しされるってことでいいんですか?
No.4
- 回答日時:
>あとfor()のあとは{がつくと思うんですが、↑の場合
必ずしもそうではありません。
for文やif文では、
for (~) {
/* 何かの文 */
}
の「何かの文」が1個だけのとき、下記のように { と } を省略できます。
for (~)
/* 何かの文(1個だけ) */
No.3
- 回答日時:
たとえば、
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,prime[100],N=100;
for (i=0;i<N;i++) {
prime[i]=i;//全ての要素を素数の候補とする
}
prime[0]=prime[1]=0;//0と1は素数ではない
for(j=2;j<sqrt(N);j++){//math.hを使わなければ、j<10か
for(i=j+1;i<N;i++){
if(prime[i]%j==0){
if(prime[i]!=0)
printf("%dの倍数 %d\n",j,prime[i]);//倍数の表示
prime[i]=0;
}
}
}
printf("\n%d未満の素数を出力\n",N);
for (i=0;i<N;i++) {
if(prime[i]!=0)
printf("%d\n",prime[i]);
}
return 0;
}
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
while文について、c言語...
-
直角三角形を表示するプログラム
-
入力した数値を0~3乗するプロ...
-
for文の中にswitch文はいれられ...
-
階乗のプログラム!!
-
scanfが実行されません
-
while文を使った問題なのですが...
-
プログラミングで二番目に大き...
-
C言語 エラー表示 break の位...
-
プログラミングに関して
-
#if 1 #elseの意味について
-
全角文字の判定
-
c++でテンプレートのコードでわ...
-
#define _CRT_SECURE_NO_WARNIN...
-
Enterキーを押されたら次の処理...
-
2分法で方程式の複数の解を自...
-
比較回数と交換回数表示について
-
「Aに対するBの割合」と「Aに対...
-
「指定されたキャストは有効で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
プログラミングで二番目に大き...
-
getcの改行判定
-
C言語プログラムが理解できなくて…
-
C言語 数字以外を入力させない...
-
配列を関数に渡す方法
-
配列を使って魔方陣
-
初心者です。for文、if文を使っ...
-
c言語for文
-
c言語で平均をだす
-
while文について、c言語...
-
scanf関数を用いての加減乗除%...
-
行列をべき乗させるプログラム
-
c言語プログラミングで1から100...
-
C言語階乗の総和を求める
-
scanfが実行されません
-
階乗のプログラム!!
-
C言語の二分法のプログラムにつ...
おすすめ情報