#include<stdio.h>
#define LIMIT 1000


void print_preme(int n)
{
  int Mark[LIMIT], i, j; 

  /*1をセット*/
  for ( i = 0 ; i < n ; i++ ) Mark[i] = 1;

  Mark[0] = Mark[1] = 0;

  /*倍数をふるい落とす*/
  for ( i=2; i<n; i++) {
    if( Mark[i] ) {
      for ( j=i*2; j<n; j+=i) Mark[j] = 0;
    }
  }

  /*残ったものを表示*/
  for ( i=0; i<n; i++) {
    if (Mark[i]) {
    printf("%d\n",i);
    }
  }
}


int main()
{
  int n;

  while(1){
    puts("入力してください");
    scanf("%d",&n);

    if( n > LIMIT)puts("数値が大きすぎます");
    else break;
  }

  print_preme(n);
  return 0;
}

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-02-23 (木) 23:33:34