题意:给出公式,问a到b区间内存在的素数的百分比。
题解:素数打表,不过要注意输出。
#include<cstdio>
#include<cstring>
using namespace std;
int num[10005];
int prime(int x){
int i;
for (i=2;i*i<=x;i++){
if (x%i==0) return 0;
}
return 1;
}
int main(){
int a,b,i,s;
double ans;
memset (num,0,sizeof(num));
for (i=0;i<10005;i++){
num[i]=prime(i*i+i+41);
}
while (scanf ("%d %d",&a,&b)!=EOF){
s=0;
for (i=a;i<=b;i++){
s+=num[i];
}
ans=1.0*s/(b-a+1)*100+1e-8;
printf ("%.2lf\n",ans);
}
return 0;
}