100000未満素数の総数を求めるのに困っているので教えてください。
#include<stdio.h>
#include<math.h>
#define NUM 100000
int main(void){
int prime[NUM+1],i,j,Limit;
for(i=2;i<=NUM;i++){
prime[i]=1;
}
Limit=(int)sqrt(NUM);
for(i=2;i<=Limit;i++){
if(prime[i]==1){
for(j=2*i;j<=NUM;j+=i){
prime[j]=0;
}
}
}
for ( i=2;i<=NUM;i++) {
if (prime[i]) {
printf("%d\n",i);
}
}
}
これなんですが、実行したらエラーが出てしまうんですがなぜでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
質問番号:5549689のANo.1ですが、あの回答では、ソースコードのインデントを全角空白で入れています。
これはここの質問や回答では行頭の半角空白等は表示されないためインデントが見られないため、回答の表示を人間が見やすくするには全角空白を使うしかないからです。
実際のCソースコーは文字列中以外で全角空白を入れるとエラーになるので、全角空白は半角空白やタブ等に置き換えなければいけません。
No.4
- 回答日時:
すぐ上がるのが int型のサイズです。
long に換えてみてはいかがでしょうか? その他、Mac OSX の gcc では問題なく動きますので怪しげな箇所を訂正してみました。なお、main()関数は int型を返すようにプログラムされているのでエラー無しの「return 0;」が必要です。/* Prime number program by Mac OSX
* file name: saya.c
* compile: gcc saya.c
* execution: ./a.out
*/
#include <stdio.h>
#include <math.h>
#define NUM 100000
int main(void) {
long int prime[NUM+1],i,j,Limit; // 訂正
for(i=2;i<=NUM;i++){
prime[i]=1;
}
Limit=(int)sqrt((double)NUM); // 訂正
for(i=2;i<=Limit;i++){
if(prime[i]==1){
for(j=2*i;j<=NUM;j+=i){
prime[j]=0;
}
}
}
for ( i=2;i<=NUM;i++) {
if (prime[i]) {
printf("%d ",i);
}
}
printf("?n");
return 0; // 追加
}
参考URL:http://www.mapee.jp/cpp/post_9.html
No.2
- 回答日時:
実行環境、開発環境を書かず、「エラーが出ます」だけ。
どういうエラーなのかという質問に、「よく判らない」という補足。
これでは、さっぱり判りませんよ。
エラーは表示されていないのですか?
表示されているなら、そのエラーメッセージを補足してください。
この回答への補足
ERROR: syntax error
ERROR: syntax error before or at line 21 in file C:\source\sosuu1.c
==>: if (prime[i]){
BUG: ・== ??? bug may be here
ERROR: syntax error
ERROR: syntax error before or at line 22 in file C:\source\sosuu1.c
==>: printf("%d\n",i);
BUG: ・== ??? bug may be here
ERROR: cannot execute command 'C:\source\sosuu1.c'
実行環境、開発環境はそれぞれchsiteです。ちなみにこのようなエラーメッセージが出ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
コンパイルできません。
-
Excelのエラーで困ってます。
-
ビルドが失敗してしまいます
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
Arduinoに関する質問
-
Visual Studioのstrcpy_sについて
-
HEWを使用しているのですが、こ...
-
ビルド失敗 指定されたファイ...
-
WindowsからLinuxへの移植
-
入れ子になっている構造体配列...
-
”wchar_t*型は渡せない”という...
-
sys/time.hのインクルードがで...
-
エラー 'iostream.h' : No su...
-
VB2008で定数に色の設定をした...
-
SONY Readerで公開pdfを読む時...
-
VisualStudio2010 VC++ エラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
HEWを使用しているのですが、こ...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
VBAでファイルを開くプログラム...
-
sys/time.hのインクルードがで...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
LPCWSTRとchar
-
RightとLeft関数のライブ...
-
Handlesについて
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報