首页 > 其他分享 >素数

素数

时间:2022-09-03 19:22:06浏览次数:57  
标签:prime int flag break 素数 vector

欧拉筛法

 1 vector<int> Prime(int n){  // 求解n以内(含n)的素数
 2     bool flag[n + 1];   // 标记数组,flag[i]==0表示i为素数,flag[i]==1表示i为合数
 3     memset(flag, 0, sizeof(flag));
 4     vector<int> prime;
 5     int cnt = 0;    // 素数个数
 6     for (int i = 2; i <= n; ++i) {
 7         if (!flag[i]) {
 8             prime.push_back(i); // 将i加入素数表
 9             cnt++;
10         }
11         for (int j = 0; j < cnt; ++j)
12         { // 保证每个合数只会被它的最小质因数筛去
13             if (i * prime[j] > n)  break;
14             flag[i * prime[j]] = 1;
15             if (i % prime[j] == 0)  break;
16         }
17     }
18     return prime;
19 }

 

标签:prime,int,flag,break,素数,vector
From: https://www.cnblogs.com/hcl6/p/16653373.html

相关文章

  • 欧拉筛素数及积性函数
    欧拉筛素数及积性函数欧拉筛素数intPrime[N],tot;boolNot[N];//true则i不是素数voidGetPrime(constint&n=N-1){Not[1]=true;for(inti=2......
  • 素数相关
    欧拉筛法用数组v[i]来记录这个数的最小质因子依次考虑2-n这些数如果v[i]=i,表示这个数为素数,把这个数存起来否则,扫描所有小于等于v[i]的素数,令v[ip]=p,表示ip这个......
  • 性感素数
    题目描述"性感素数"是指形如(p,p+6)这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。现给定一个整数,请你判断其是否为一个性感素数......
  • 【luogu P2508】圆上的整点(高斯素数模板)
    圆上的整点题目链接:luoguP2508题目大意给你一个圆,问你圆周上有多少个点的坐标是整点。思路考虑一个东西叫做高斯整数。其实它是复数,是\(a+bi\)中\(a,b\)都是整......