【P5736】【深基7.例2】质数筛

2024-03-19 02:28
文章标签 质数 深基 p5736

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

【深基7.例2】质数筛

题目描述

输入 n n n 个不大于 1 0 5 10^5 105 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。

输入格式

第一行输入一个正整数 n n n,表示整数个数。

第二行输入 n n n 个正整数 a i a_i ai,以空格隔开。

输出格式

输出一行,依次输出 a i a_i ai 中剩余的质数,以空格隔开。

样例 #1

样例输入 #1

5
3 4 5 6 7

样例输出 #1

3 5 7

提示

数据保证, 1 ≤ n ≤ 100 1\le n\le100 1n100 1 ≤ a i ≤ 1 0 5 1 \leq a_i \leq 10^5 1ai105

题解

#include<iostream>
#include<cmath>
using namespace std;bool isprime(int n)
{if(n==1)return false;if(n==2)return true;for(int i=2;i<=sqrt(n);i++){if(n%i==0)return false;}return true;
}int main()
{int n;cin >> n;int num;for(int i=0;i<n;i++){cin >> num;if(isprime(num))cout << num << " ";}return 0;
}

这篇关于【P5736】【深基7.例2】质数筛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

算法---计数质数(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;}

第九届中国大学生程序设计竞赛(秦皇岛)-(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

【P4387 【深基15.习9】验证栈序列 java版本

文章目录 【P4387 【深基15.习9】验证栈序列 java版本题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 算法分析代码实现 结语 【P4387 【深基15.习9】验证栈序列 java版本 题目描述 给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 n ( n ≤ 100000 ) n(n\le100000) n(n≤100000)

筛质数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;

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'

[数学]204. 计数质数

统计所有小于非负整数 n 的质数的数量。 示例 1: 输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 示例 2: 输入:n = 1输出:0 提示: 0 <= n <= 5 * 10^6 方法: (1)平方根枚举,超时 (2)埃氏筛 枚举没有考虑到数与数的关联性,因此难以再继续优化时间复杂度。接下来我们介