素数判定

来源:互联网 发布:美国钻井平台数据公布 编辑:程序博客网 时间:2024/06/08 13:46

题目:http://acm.hust.edu.cn/vjudge/contest/127946#status//D/0

简单的素数判定,没看懂题真可怕。。~~~~(>_<)~~~~ 不过看懂了题也想不到输出要加精度

123456789101112131415161718192021222324252627282930
#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;}





0 0
原创粉丝点击