• 締切済み

確認したいのでやってみてください

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

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

#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)
回答No.3

ある数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)
回答No.2

#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)
回答No.1

#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 配列 をなるべく使う。 配列だけ使ってみました。

関連するQ&A