UVA____10200

這個就是一個簡單的素數判斷,然後就是求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;
}

發佈了78 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章