エラトステネスの篩(ふるい)を大幅に勘違いしてた

このプログラムをエラトステネスの篩(ふるい)だと思ってた。

全然、違うよな。

//Erato.c

#include <stdio.h>

int main(void)
{
  int i,j;
  int dat[100];

  for(i=0;i<100;i++){
    dat[i]=i+2;
  }

  for(i=0;i<100;i++){
    if(dat[i]!=0){
      fprintf(stdout,"%3d\n",dat[i]);
      for(j=i+1;j<100;j++){
        if(dat[j]%dat[i]==0) dat[j]=0;
      }
    }
  }

  return 0;

}
  2
  3
  5
  7
 11
 13
 17
 19
 23
 29
 31
 37
 41
 43
 47
 53
 59
 61
 67
 71
 73
 79
 83
 89
 97
101

勉強し直そう。