zoukankan      html  css  js  c++  java
  • 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("
    ");
            }else{
                printf(" ");
            }
            
        }
    } 
    低调做人,高调做事。
  • 相关阅读:
    发布自己的包到Nuget上
    asp.net core 中的MD5加密
    asp.net core csrf
    KNN算法
    ios测试apk
    python多进程
    机顶盒 gettimeofday()获取毫秒溢出
    Kiggle:Digit Recognizer
    Kaggle:Titanic: Machine Learning from Disaster
    Python抓取微博评论
  • 原文地址:https://www.cnblogs.com/Asimple/p/5577952.html
Copyright © 2011-2022 走看看