24h購物| | PChome| 登入
2009-08-18 17:59:12| 人氣1,467| 回應0 | 上一篇 | 下一篇

ACM 10200 Q10200: Prime Time

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : 先建表存放是否為質數....

※注意精準度

/*********************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int math[5200]={0};
int p;
int prime()
{
  char num[100000]={0};
  int a,b,m=0;
 for(a=2;a<50000;a++)  
      if(num[a]==0)  
        {  
           math[m]=a;  
           m++;  
           for(b=2;a*b<=50000;b++)  
             num[a*b]=1;  
        }
   return m;
}
int primeJudge (int num)
{
   int a,yes=0,s=(int)sqrt(num);
   for(a=0;a<p&&math[a]<=s;a++)
      if(num%math[a]==0)
         {yes=1;break;}
   if(yes==0)
      return 1;
   else
      return 0;  
}
main()
{
 p=prime();
 int PrimeTime[10001]={0},a,n,m;
 PrimeTime[0]=1;
 for(a=1;a<=10000;a++)
   PrimeTime[a]=primeJudge(a*a+a+41);
 while(scanf("%d %d",&n,&m)==2)
  {
    double s=m-n+1,pp=0;
    for(a=n;a<=m;a++)
       pp+=PrimeTime[a];
    int ss=pp*100000/s;
    if(ss%10>=5) ss=ss+10;
    printf("%d.%02d\n",ss/1000,ss%1000/10);
  }
 return 0;  
}

台長: 來源不明
人氣(1,467) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 10235 Q10235: Simply Emirp
此分類上一篇:ACM 10905 Q10905: Children’s Game

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文