- 締切済み
確認したいのでやってみてください
0から50までの素数を列挙するプログラムを作成せよ。 素数→0,1を除く、2つしか約数がない数 if switch for while do-while 配列 をなるべく使う。 <実行結果> 0~50までの素数は以下となります 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6289)
#include <stdio.h> int isPrime(int n) { int i; if (n < 2) return 0; for (i = 2; i * i <= n; i++) { if (n % i == 0) return 0; } return 1; } int main(void) { int n; printf("0から50までの素数は以下となります\n"); for (n = 0; n <= 50; n++) { if (isPrime(n)) printf("%d\n", n); } return 0; }
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
ある数nにおいて、n/1、n/2、n/3、n/4、‥‥n/n-1、n/nを順に計算して、割り切れるところが2つ(n/1とn/n)だけなら素数って判断すればいいんでしょ? で、n=2からn=50まで繰り返せば終了。
- Tacosan
- ベストアンサー率23% (3656/15482)
#include <stdio.h> #include <stdlib.h> int main() { printf("2\n3\n5\n7\n11\n13\n17\n19\n23\n29\n31\n37\n41\n43\n47\n"); return EXIT_SUCCESS; }
- jacta
- ベストアンサー率26% (845/3158)
#include <iostream> #include <algorithm> #include <iterator> int main() { static const int a[] = { 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 }; std::copy(&a[0], &a[sizeof a / sizeof a[0]], std::ostream_iterator<int>(std::cout, "\n")); return 0; } > if switch for while do-while 配列 をなるべく使う。 配列だけ使ってみました。