W

W - Prime Time

题意:用公式n*n+n+41,判断素数的百分比

#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#define ll long long
#define mx 10000100
using namespace std;
int sum[10010];
bool isprime(int x)//快速判断素数
{
    int n=x*x+x+41;
    for(int i=2;i*i<=n;i++)
        if(n%i==0)
            return false;
    return true;
}
int main()
{
    int a,b;
    sum[0]=1;//0*0+0+41是素数
    for(int i=1;i<=10000;i++)
        sum[i]=sum[i-1]+isprime(i);

    //cout<<isprime(40)<<endl;
    while(~scanf("%d%d",&a,&b))
    {
        //cout<<sum[a]<<' '<<sum[b]<<' '<<isprime(a)<<' '<<sum[b]-sum[a]+isprime(a)<<endl;
        printf("%.2f
",(sum[b]-sum[a]+isprime(a))*1.0/(b-a+1)*100+1e-8);//+le-8提高精度,否则WA
    }
    return 0;
}
// 0 39
// 0 40
// 39 40
原文地址:https://www.cnblogs.com/-citywall123/p/11866774.html