设为首页 加入收藏

TOP

杭电ACM1216――Assistance Required~~筛选法的应用
2015-11-21 00:59:21 来源: 作者: 【 】 浏览:1
Tags:杭电 ACM1216 Assistance Required 筛选 应用

这题,一开始以为是第几个素数,后来打表之后查了一下,发现不是。

再看看题目,才知道是简单的筛选法。

每一个筛选留下来的数n,n往后的所以数,能被n整除的除去,不能的留下,筛选出3000个数出来就OK了。

下面的是AC的代码:

?

#include 
  
   
#include 
   
     using namespace std; int num[50000]; int a[3005]; int main() { memset(num, 0, sizeof(num)); int c = 0, k; for(int i = 2; i < 50000; i++) { if(!num[i]) { a[c++] = i; k = 0; for(int j = i + 1; j < 50000; j++) { if(!num[j]) { k++; if(k == i) { num[j] = 1; k = 0; } } } if(c >= 3000) break; } } int n; while(cin >> n, n) cout << a[n - 1] << endl; return 0; }
   
  


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sgu-261 Discrete Roots 下一篇Class.forName().newInstance()和..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: