筛法求素数加强版
?題目鏈接http://openoj.awaysoft.com/JudgeOnline/problem.php?id=2010
?如果直接循環(huán)判斷,無(wú)疑必定超時(shí),所以此題的關(guān)鍵就是進(jìn)行預(yù)處理操作,代碼如下:
1 #include<stdio.h> 2 #include<math.h> 3 bool p[1000001]; 4 long long q[1000001]; //VC中用__int64定義 , %I64d 輸出 5 void prime() //預(yù)處理 6 { 7 long long i,j; 8 p[1]=1; 9 for(i=2;i<1000001;i++) 10 for(j=i*2;j<1000001;j+=i) 11 if(p[j]==0) 12 p[j]=1; 13 for(i=1;i<1000001;i++) 14 { 15 if(p[i]==1) 16 q[i]=q[i-1]; 17 else 18 q[i]=q[i-1]+(long long )i; 19 } 20 } 21 int main() 22 { 23 // freopen("in.txt","r",stdin); 24 // freopen("out.txt","w",stdout); 25 int n,x; 26 prime(); 27 scanf("%d",&x); 28 while(x--) 29 { 30 scanf("%d",&n); 31 printf("%lld\n",q[n]); 32 } 33 return 0; 34 }?
轉(zhuǎn)載于:https://www.cnblogs.com/gj-Acit/archive/2012/12/27/2836404.html
總結(jié)
- 上一篇: lua--面向对象使用middlecla
- 下一篇: JQuery EasyUI 动态隐藏