#include <stdio.h>
main(unsigned int argc, char *argv[]){
int a;
char s[255];
int i,j,k;
a=atoi(argv[1]);
for (i=2;i<=a;i++) s[i]=1;
j=0;
k=2;
do {
if (s[k]!=0) {
j++;
for (i=k*k;i<=a;i+=k) {
s[i]=0;
}
}
k++;
}while (k<=a);
printf("%d¥a",j);
}
ここからまだ最適化の余地あります。