UVA

    xiaoxiao2025-02-28  19

    这个就是一个简单的素数判断,然后就是求a, b之间素数存在的概率不知道为什么就是最后概率后面要+1e-8可能即使double精确度吧

    #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> using namespace std; #define N 11000 int f[N]; int q(long long m) {     int k=(int)sqrt(m);     for(int i=2;i<=k;i++)         if(m%i==0)         return 0;     return 1; } int main() {     int a,b;     f[0]=1;     for(int i=1;i<N;i++)         f[i]=f[i-1]+q(i*i+i+41);     while(scanf("%d%d", &a,&b) != EOF)     {         double s;         if(a==0)             s=1.0*f[b]/(b-a+1);         else             s=1.0*(f[b]-f[a-1])/(b-a+1);         printf("%.2f\n", s*100+1e-8);     }     return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1296736.html
    最新回复(0)