6桁以下の正の整数nを入力し、n以下の素数がいくつあるかを数えて出力する
n(整数)
n以下の素数の個数(整数)
10
4
エラトステネスのふるいで解きましょう。めんどくさいので説明はパスです。
#include <stdio.h> int main(){ int n,in,count,i,j; char era[1000000]; scanf("%d",&in); for(i=0;i<=in;i++){ era[i]=1; } count=0; for(i=2;i<=in;i++){ if(era[i] == 1){ count++; for(j=i;j<=in;j+=i){ era[j]=0; } } } printf("%d\n",count); return 0; }
エラトステネスについては上の階層の方で説明します(2006-5-9まだ書いていません)。パッパと実装できるようにしておきましょう。