CPRIME - Prime Number Theorem
Tác giả: flashmt
Ngôn ngữ: C++
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <bitset>
#include <cmath>
using namespace std;
bitset<100000100> d;
int p[6000000],P;
int main()
{
for (int i=2;i*i<100000000;i++)
if (!d[i])
for (int j=i*i;j<100000000;j+=i)
d[j]=1;
for (int i=2;i<100000000;i++)
if (!d[i])
p[P++]=i;
int n;
while (scanf("%d",&n), n)
{
int num=upper_bound(p,p+P,n)-p;
printf("%.1lf\n",100.0*fabs(num-n/log(n))/num);
}
}