「一気に最後まで読んだ」本、教えて下さい!

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

A 回答 (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;
}
    • good
    • 0

ある数nにおいて、n/1、n/2、n/3、n/4、‥‥n/n-1、n/nを順に計算して、割り切れるところが2つ(n/1とn/n)だけなら素数って判断すればいいんでしょ?


で、n=2からn=50まで繰り返せば終了。
    • good
    • 0

#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;
}
    • good
    • 0

#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 配列 をなるべく使う。

配列だけ使ってみました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!