筛质数zz

2024-08-29 01:04
文章标签 质数 zz

本文主要是介绍筛质数zz,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给定一个正整数 nn,请你求出 1∼n1∼n 中质数的个数。

输入格式

共一行,包含整数 nn。

输出格式

共一行,包含一个整数,表示 1∼n1∼n 中质数的个数。

数据范围

1≤n≤1061≤n≤106

输入样例:
8
输出样例:
4
#include <iostream>
using namespace std;
const int N=1e6+10;
int cnt;
bool st[N];
int primes[N];
void get_primes(int n)
{for(int i=2;i<=n;i++){if(!st[i]){primes[cnt++]=i;for(int j=i+i;j<=n;j+=i)    st[j]=true;}}
}
int main()
{int n;cin>>n;get_primes(n);cout<<cnt<<endl;// for(int i=0;i<cnt;i++)// {//     cout<<primes[i]<<endl;// }
}

#include <iostream>
using namespace std;
const int N=1e6+10;
int cnt;
bool st[N];
int primes[N];
void get_primes(int n)
{for(int i=2;i<=n;i++){if(!st[i]){primes[cnt++]=i;}for(int j=0;primes[j]<=n/i;j++){st[primes[j]*i]=true;if(i%primes[j]==0)  break;}}
}
int main()
{int n;cin>>n;get_primes(n);cout<<cnt<<endl;// for(int i=0;i<cnt;i++)// {//     cout<<primes[i]<<endl;// }
}

这篇关于筛质数zz的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116400

相关文章

js算法题,给任意一个偶数,找出他的所有的质数因子

/*给任意一个偶数,找出他的所有的质数因子*/ function primeFactor(n){     var factors=[],            divistor=2;     if(typeof n !=='number'||!Number.isInteger(n)){          return 0;     }; //如果不是偶数返回0,如果是0,返回0

zz 这个帖子总结的很到位!

作者:Mingche Su 链接:https://zhuanlan.zhihu.com/p/21791045 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 面试应该都逃不过这个范围了。努力,加油! 1.编程语言问题(以java为例) Java vs C++ Abstract class vs interface pass by referenc

算法---计数质数(Java)

题目:计数质数 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n = 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2: 输入:n = 0 输出:0 示例 3: 输入:n = 1 输出:0 提示: 0 <= n <= 5 * 106 解决方法:(埃氏筛) 思路: 算法由希腊数学家厄拉多塞(\rm

leetcode 204:计数质数

int countPrimes(int n) {if(n<=0)return 0;int c=0;for(int i=2;i<n;i++){int flag=0;for(int j=2;j<=std::sqrt(i);j++){if(i%j==0){flag=1;break;}}if(flag==0)c++;}return c;}

OpenStack 和 Hadoop 的区别是什么?zz知乎

zz   http://www.zhihu.com/question/20475470 OpenStack 主要目的是做一整套的云计算基础构架。包括 云计算(Compute), 网络(Network),对象存贮(Object Store),镜像文件存储 (Image),身份认证(Authentication),BlockStorage 以及 前端UI 。 OpenStack的每

argue counter 和argumentvector 啥意思 zz百度百科

argc argv   编辑 本词条缺少 名片图,补充相关内容使词条更完整,还能快速升级,赶紧来 编辑吧! ARGc和 ARGv中的 ARG指的是 "参数 "(外语: ARG uments, argument counter 和 argument vector )  [1] 至少有两个参数至 主函数:ARGc和ARGv; 首先是一个计算提供的参数到程序, 第二个是对字

第九届中国大学生程序设计竞赛(秦皇岛)-(CCPC2023-Qinhuangdao F - 质数之谜(DP)

题意 给定一个序列,修改最少数量的元素使得任意i属于[1,n-1],q[i]+q[i+1]都为质数,输出最小修改次数 思路 首先手玩的过程中可以发现,     如果因为前面一个数字和自己相加不是质数然后我把自己变成了奇数,那么如果我后面一个数字是偶数     可以发现自己肯定能找到另一个奇数使得和前面相加互质并且和后面相加也互质     举个例子:假设为2 8 10,我此时是8,我发现2+

力扣刷题--762. 二进制表示中质数个计算置位【简单】

题目描述🍗 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数。 计算置位位数 就是二进制表示中 1 的个数。 例如, 21 的二进制表示 10101 有 3 个计算置位。 示例 1: 输入:left = 6, right = 10 输出:4 解释: 6 -> 110 (2 个计算置位,2 是质数) 7

《算法竞赛进阶指南》0x31质数

定义 若一个正整数无法被除了1和它本身之外的任何自然数整除,则称这个数为质数(素数),反之为合数。 对于一个足够大的整数N,不超过N的质数大约有 N/lnN个,分布比较松散。 质数的判定 试除法 若一个正整数N为合数,则存在一个能整除N的数T,其中 2 ≤ T ≤ N 2\leq T \leq \sqrt{N} 2≤T≤N ​。 因此,我们只需要扫描 [ 2 , N ] [2,\sqr

Python 判断质数

a = raw_input() #输入数字a = int(a) #强制转换成intb=True #一个标记for i in range(2,a): #从2开始循环本身if a%i==0: #如果除了本身和1以外还能被整除b=False #标记改成Falsebreak #循环结束if b:print 'YES'else:print 'NO'