算法练习——数素数

题目

题目描述

令Pi表示第i(i从1开始计数)个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。

输入描述:

输入在一行中给出M和N,其间以空格分隔。

输出描述:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入例子:
复制代码
5 27
输出例子:
复制代码
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

代码

线性筛素数

cpp 复制代码
#include<iostream>
using namespace std;

const int N = 105000;
int p[N], idx = 1;
bool st[N];

void get_primes() {
    for(int i = 2; i < N; i ++ ) {
        if(!st[i]) p[idx ++ ] = i;
        for(int j = 1; p[j] <= N / i; j ++ ) {
            st[i * p[j]] = true;
            if(i % p[j] == 0) break;
        } 
    }
}

int main() {
    int m, n;
    cin >> m >> n;

    get_primes();

    int cnt = 0;
    for(int i = m; i <= n; i ++ ) {
        if(cnt == 0) printf("%d", p[i]);
        else if(cnt % 10 == 0) printf("\n%d",p[i]);
        else printf(" %d", p[i]);
        cnt ++;
    }
    return 0;
}
相关推荐
WolfGang00732120 小时前
代码随想录算法训练营Day27 | 56.合并区间、738.单调递增的数字、968.监控二叉树
算法
xiaoye-duck20 小时前
数据结构之排序-选择排序&交换排序
数据结构·排序算法
小此方20 小时前
笔记:树。
数据结构·笔记
hweiyu0020 小时前
数据结构:链表
数据结构·链表
信奥卷王21 小时前
2025年9月GESPC++三级真题解析(含视频)
开发语言·c++·算法
努力学习的小廉21 小时前
我爱学算法之—— BFS之FLoodFill算法
算法·宽度优先
天选之女wow21 小时前
【Hard——Day8】65.有效数字、68.文本左右对齐、76.最小覆盖子串
linux·运维·redis·算法·leetcode
AI大模型学徒21 小时前
NLP基础(八)_马尔可夫模型
算法·机器学习·自然语言处理·nlp·概率论·马尔可夫模型
前端小L21 小时前
图论专题(十八):“逆向”拓扑排序——寻找图中的「最终安全状态」
数据结构·算法·安全·深度优先·图论·宽度优先
前端小L21 小时前
图论专题(十七):从“判定”到“构造”——生成一份完美的「课程表 II」
算法·矩阵·深度优先·图论·宽度优先