题目:http://acm.hust.edu.cn/vjudge/contest/127946#status//D/0
简单的素数判定,没看懂题真可怕。。~~~~(>_<)~~~~ 不过看懂了题也想不到输出要加精度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <stdio.h> #include <string.h> int f(int n) { int i; for(i=2;i*i<=n;i++) { if((n%i)==0) return 0; } return 1; } int main() { int num[10010]; int i; int a,b; int sum; memset(num,0,sizeof(num)); for(i=0;i<=10005;i++) num[i]=f(i*i+i+41); while(scanf("%d%d",&a,&b)!=-1) { sum=0; for(i=a;i<=b;i++) sum+=num[i]; printf("%.2f\n",sum*1.0/(b-a+1)*100+1e-8); } return 0; } 为什么又超时~~~~(>_<)~~~~ //超时。。。 #include<cstdio> int f(int n)//素数判定 { for(int i=2;i*i<=n;i++) { if(n%i==0) return 0; } return 1; } int main() { int a,b; while(~scanf("%d%d",&a,&b)) { int t=1,sum=0; for(int i=a;i<=b;i++) { sum+=f(i*i+i+41); } printf("%.2f\n",sum*1.0/(b-a+1)*100+1e-8); } return 0; }