首页 > 其他分享 >AcWing 868. 筛质数

AcWing 868. 筛质数

时间:2023-08-22 21:01:02浏览次数:42  
标签:868 int 个数 质数 样例 primes 筛选 AcWing

JWvFczgRNg.jpg

题目

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

输入格式 共一行,包含整数 $n$。

输出格式 共一行,包含一个整数,表示 $1∼n$ 中质数的个数。

数据范围 $1≤n≤10^6$ 输入样例:

8

输出样例:

4

思路

  1. 朴素筛选 遍历到某个数值 $i$ 我们将它的倍数全部删除,如此反复,剩下的为 $1∼n$ 中的所有质数

代码

朴素筛选法

#include <iostream>

using namespace std;

const int N = 1000010;

int n, primes[N];
bool st[N];

int find_primes(int x)
{
    int cnt = 0;
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
    
        for (int j = i; j <= n; j += i) st[j] = true;
    }
    
    return cnt;
}

int main()
{
    cin >> n;
    
    cout << find_primes(n) << endl;
    
    return 0;
}

标签:868,int,个数,质数,样例,primes,筛选,AcWing
From: https://blog.51cto.com/u_16170343/7192935

相关文章

  • 2.Acwing基础课第786题-简单-第k个数
    2.Acwing基础课第786题-简单-第k个数题目描述给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含整数n和k。第二行包含n个整数(所有整数均在1~范围内),表示整个数列。输出格式输出一个整数,表示数列的第k......
  • 5.Acwing基础课第792题-简单-高精度减法
    5.Acwing基础课第792题-简单-高精度减法题目描述给定两个正整数(不含前导0),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤100000输入样例3211输出样例21思路解析:算法:时间复杂度:*O(nlog(n)......
  • 4.Acwing基础课第791题-简单-高精度加法
    4.Acwing基础课第791题-简单-高精度加法题目描述给定两个正整数(不含前导0),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤100000输入样例1223输入样例35思路解析:算法:时间复杂度:*O(nlog(n))*解题思路:代码:......
  • 7.Acwing基础课第794题-简单-高精度除法
    7.Acwing基础课第794题-简单-高精度除法题目描述给定两个非负整数(不含前导0)A,B,请你计算A/B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤100000,1≤B≤10000,B一定不为......
  • 6.Acwing基础课第793题-简单-高精度乘法
    6.Acwing基础课第793题-简单-高精度乘法题目描述给定两个非负整数(不含前导0)A和B,请你计算A×B的值。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共一行,包含A×B的值。数据范围1≤A的长度≤100000,0≤B≤10000输入样例23输出样例6思路解析:......
  • 1.Acwing基础课第785题-简单-快速排序
    1.Acwing基础课第785题-简单-快速排序题目描述给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1~范围内),表示整个数列。输出格式输......
  • AcWing 867. 分解质因数
    题目给定$n$个正整数$a_i$,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。输入格式第一行包含整数$n$。接下来$n$行,每行包含一个正整数$a_i$。输出格式对于每个正整数$a_i$,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数,......
  • 质数筛选
    欧拉筛:欧拉(Euler)筛法是用于找到从111开始,到给定的最大数之间的所有质数的一种筛法,其时间复杂度是O(n)O(n)O(n)。其中欧拉筛法有效地避免了埃拉托斯特尼(Eratosthenes)筛法中重复的筛选,保证了每个数只筛选一次,成功地降低了时间复杂度。一、埃拉托斯特尼(Eratosthenes)筛法埃拉......
  • AcWing 866. 试除法判定质数
    题目给定$n$个正整数$a_i$,判定每个数是否是质数。输入格式第一行包含整数$n$。接下来$n$行,每行包含一个正整数$a_i$。输出格式共$n$行,其中第$i$行输出第$i$个正整数$a_i$是否为质数,是则输出Yes,否则输出No。数据范围$1≤n≤100,1≤a_i≤2^{31}−1$......
  • Acwing 第117场周赛
    Acwing第117场周赛这次的题比较简单,但是在做第二题的时候有地方一开始没有想到,导致想的比较简单,提交错了两次,下次要彻底思考清楚再提交A题题意:给定一个正整数n,请你计算一共有多少个正整数数对(a,b)同时满足:a>ba+b=n输入格式第一行包含整数T,表示共有T组测试数据。每......