Prime Time

来源:互联网 发布:中电41所 知乎 编辑:程序博客网 时间:2024/05/19 19:55

题目链接

题意:让你找a~b之间的数i,根据这个式子,根据这个式子的结果是不是素数,找出a~b之间素数的占的比率*100.注意精度问题

#include<stdio.h>#include<iostream>#include<string.h>#include<algorithm>using namespace std;#define LL long longint prim[100000005];int num[10005];int we(int n)//判断是不是素数{  for(int i=2;i*i<=n;i++)  {      if(n%i==0)        return 0;  }  return 1;}//void we()//筛法貌似行不通,会RE//{//    prim[0]=prim[1]=1;//    for(int i=2; i<=105000000; i++)//    {//        if(!prim[i])//        {//            for(int j=2*i; j<=10050000; j+=i)//            {//                prim[j]=1;//            }//        }//    }//}int main(){    for(int i=0;i<=10005;i++)    {        if(we(i*i+i+41))        {            num[i]=1;        }        else            num[i]=0;    }    int n,m;    while(scanf("%d%d",&n,&m)!=-1)    {        int sum1=0;        for(int i=n; i<=m; i++)        {            sum1+=num[i];//            if(!prim[i*i+i+41])//            {//                //printf("###%d\n",i*i+i+41);//                sum1++;//            }        }        //printf("!!%d\n",sum1);        printf("%.2lf\n",sum1*1.0/(m-n+1)*100+1e-8);//重点要加1e-8    }}

0 0
原创粉丝点击