题解:
一开始还以为有规律呢。
直接打表+前缀和
根据紫书的例子,为了保证%.2lf四舍五入进入数据不出错,输出必须加上1e-5
代码:
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
int sum[10005];
bool isprime(LL n)
{
LL num = n*n+n+41;
for(LL i=2;i*i<=num;i++)
{
if(num%i==0)
return false;
}
return true;
}
void init()
{
sum[0]=1;
for(int i=1;i<=10000;i++)
{
sum[i]=sum[i-1]+isprime(i);
}
}
int main()
{
init();
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
int total=b-a+1;
int ans=sum[b]-sum[a-1];
printf("%.2lf\n",((double)ans/(double)total)*100+1e-8);
}
return 0;
}