ACM题目————数素数

 

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出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

试试证明,预处理很重要!

复制代码
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;

#define NUM 10004
int primes[NUM];

void findPrimes(){
    int cnt=0;
    int a = 2;
    while (cnt <= NUM) {
        // 排除偶数
        if (a % 2 == 0 && a != 2) {
            ++a;
            continue;
        }

        int i = 0;
        for (i = 0; i < sqrt(cnt); ++i) {
            if (a % primes[i] == 0) {
                break;
            }
        }
        if (i >= sqrt(cnt)) {
            primes[cnt] = a;
            cnt++;

        }
        ++a;
    }
    
}
int main(){
    findPrimes();
    int m,n;
    cin >> m >> n;
    for(int i = m; i <= n; ++i){
        
        cout << primes[i-1];
        if ((i-m+1) % 10 == 0 || i == n) {
            printf("\n");
        }else{
            printf(" ");
        }
        
    }
} 
复制代码
posted @   Asimple  阅读(436)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示