C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: c言語 素数判定


(過去ログ 86 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■50857 / inTopicNo.1)  c言語 素数判定
  
□投稿者/ 納豆 (1回)-(2010/06/20(Sun) 21:00:16)

分類:[C/C++] 

2010/06/20(Sun) 21:12:36 編集(投稿者)
入力された数値が素数であるかどうかを判定するプログラムを作りたいと思っています。
一応作ってみたのですが、間違い・不備・改良点等を指摘していただきたいです。

#include <stdio.h> 

int main (void) {
    int num, i;
	int val = 1;
	printf("判定したい数を入力してください\n");
	scanf("%d", &num);
	for (i = 2; i < num; i++) {
		if ((num % i) == 0) {
			val = 0;
		}
	}
	if (val == 1) {
		printf("%dは素数です\n",num);
	}
	else {
		printf("%dは素数ではないです\n",num);
	}
	return 0;
}

次に上記のプログラムに変更を加え、1000までの素数を表示するプログラムを作りたいのですがどのようにすればいいのでしょうか?

引用返信 編集キー/
■50859 / inTopicNo.2)  Re[1]: c言語 素数判定
□投稿者/ επιστημη (2512回)-(2010/06/20(Sun) 21:48:35)
επιστημη さんの Web サイト
> 一応作ってみたのですが、間違い・不備・改良点等を指摘していただきたいです。
> 
> #include <stdio.h> 
> 
> int main (void) {
>   int num, i;
>   int val = 1;
>   printf("判定したい数を入力してください\n");
>   scanf("%d", &num);
>   for (i = 2; i < num; i++) {
>     if ((num % i) == 0) {
>       val = 0; /*  この時点で素数でないことが判明しているので以降のloopはムダ。 */
>     }
>   }
>   if (val == 1) {
>     printf("%dは素数です\n",num);
>   }
>   else {
>     printf("%dは素数ではないです\n",num);
>   }
>   return 0;
> }

> 次に上記のプログラムに変更を加え、1000までの素数を表示するプログラムを作りたいのですがどのようにすればいいのでしょうか?

int is_prine(int n) {
  /* nが素数なら1、さもなくば0を返す */
}

int main() {
  int i;
  for ( i = 0; i < 1000; ++i ) {
    if ( is_prime(i) ) {
      printf(%d ", i);
    }
  }
  return 0;
}

引用返信 編集キー/
■50861 / inTopicNo.3)  Re[2]: c言語 素数判定
□投稿者/ 納豆 (3回)-(2010/06/20(Sun) 22:09:05)
No50859 (επιστημη さん) に返信
申し訳ないのですが、まだ関数の作り方について学習していないので関数を作らずに表示する方法を教えていただけるとありがたいです。
引用返信 編集キー/
■50862 / inTopicNo.4)  Re[3]: c言語 素数判定
□投稿者/ やじゅ (1656回)-(2010/06/20(Sun) 22:17:45)
やじゅ さんの Web サイト
No50861 (納豆 さん) に返信
> ■No50859 (επιστημη さん) に返信
> 申し訳ないのですが、まだ関数の作り方について学習していないので関数を作らずに表示する方法を教えていただけるとありがたいです。

for文の二重ループ
http://www9.plala.or.jp/sgwr-t/c/sec06-2.html
引用返信 編集キー/
■50863 / inTopicNo.5)  Re[4]: c言語 素数判定
□投稿者/ επιστημη (2513回)-(2010/06/20(Sun) 22:27:41)
επιστημη さんの Web サイト
>>申し訳ないのですが、まだ関数の作り方について学習していないので関数を作らずに表示する方法を教えていただけるとありがたいです。

int main() {
  int i;
  for ( i = 0; i < 1000; ++i ) {
    int is_prime;
    /*
     * i が素数なら is_primeを1に、さもなくば0にする 
     */
    if ( is_prime ) {
      printf(%d ", i);
    }
  }
  return 0;
}



引用返信 編集キー/
■50911 / inTopicNo.6)  Re[3]: c言語 素数判定
□投稿者/ .SHO (1351回)-(2010/06/21(Mon) 23:45:32)
No50861 (納豆 さん) に返信

> 申し訳ないのですが、まだ関数の作り方について学習していないので関数を作らずに表示する方法を教えていただけるとありがたいです。

main() も関数だし…
このさい勉強すれば。
引用返信 編集キー/
■51207 / inTopicNo.7)  Re[4]: c言語 素数判定
□投稿者/ 納豆 (4回)-(2010/06/27(Sun) 21:18:28)
2010/06/27(Sun) 21:19:13 編集(投稿者)

解決しました。ありがとうございます。
解決済み
引用返信 編集キー/
■51249 / inTopicNo.8)  Re[5]: c言語 素数判定
□投稿者/ .SHO (1355回)-(2010/06/29(Tue) 08:04:47)
No51207 (納豆 さん) に返信
> 2010/06/27(Sun) 21:19:13 編集(投稿者)
>
> 解決しました。ありがとうございます。

どう解決したのか書いてもらえないのかなぁ?
明らかに無駄なループしてそうに思えるんだけど。。。
解決済み
引用返信 編集キー/
■51255 / inTopicNo.9)  Re[6]: c言語 素数判定
□投稿者/ みきぬ (932回)-(2010/06/29(Tue) 12:02:58)
> どう解決したのか

つまり宿題が提出できた、ということでは。
# あとは野となれ山となれ
解決済み
引用返信 編集キー/
■51261 / inTopicNo.10)  Re[7]: c言語 素数判定
□投稿者/ 納豆 (5回)-(2010/06/29(Tue) 19:57:14)
2010/06/29(Tue) 19:57:39 編集(投稿者)
#include <stdio.h> 

int main(void);

int main(void) {
	int number, i;
	int check = 0;
	printf("判定したい数を入力してください\n");
	scanf("%d", &number);
	for (i = 2; i < number; i++) {
		if ((number % i) == 0) {
			check = 1;
			break;
		}
	}
	if (check == 0) {
		printf("%dは素数です\n",number);
	}
	else {
		printf("%dは素数ではありません\n",number);
	}
	return (0);
}

助言を参考にさせていただきました。

引用返信 編集キー/
■51322 / inTopicNo.11)  Re[8]: c言語 素数判定
□投稿者/ .SHO (1357回)-(2010/07/02(Fri) 00:15:58)
No51261 (納豆 さん) に返信

> #include <stdio.h>
>
> int main(void);
>
> int main(void) {


前から気になって仕方ないんだけど、なんで main のプロトタイプ宣言するのか
先生に聞いてくれないかな。。。
引用返信 編集キー/
■51332 / inTopicNo.12)  Re[8]: c言語 素数判定
□投稿者/ やじゅ (1667回)-(2010/07/02(Fri) 12:48:19)
やじゅ さんの Web サイト
No51261 (納豆 さん) に返信

>次に上記のプログラムに変更を加え、1000までの素数を表示するプログラムを作りたいのですが
>どのようにすればいいのでしょうか?

という質問だったけど、入力した数値が素数か判断しているだけで終わってますよ。


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -