码迷,mamicode.com
首页 > 其他好文 > 详细

【模板】线性筛求素数

时间:2018-11-07 11:35:21      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:void   iostream   ems   algorithm   scan   ++   als   bool   can   

线性筛求素数

 1 #include <iostream>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <cstdio>
 5 
 6 const int MAX_N = 10000000 + 10;
 7 
 8 bool vis[MAX_N];
 9 int Prime[MAX_N >> 1];
10 inline void GetPrime(int n) {
11     memset(vis, false, sizeof(vis));
12     vis[1] = true;
13     
14     int cnt = 0;
15     for (int i = 2; i <= n; i++) {
16         if (!vis[i]) Prime[++cnt] = i;
17         for (int j = 1; j <= cnt && i * Prime[j] <= n; j++) {
18             vis[i * Prime[j]] = true;
19             if (i * Prime[j] == 0) break; 
20         }
21     }
22 }
23 
24 int main() {
25     int n, m; scanf("%d%d", &n, &m);
26     
27     GetPrime(n);
28     while (m--) {
29         int x; scanf("%d", &x);
30         if (!vis[x]) puts("Yes");
31         else puts("No");
32     }
33     
34     return 0;
35 }

 

【模板】线性筛求素数

标签:void   iostream   ems   algorithm   scan   ++   als   bool   can   

原文地址:https://www.cnblogs.com/wky1366365447/p/9920809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!