zoukankan      html  css  js  c++  java
  • POJ NOI0105-44 第n小的质数

    问题链接POJ NOI0105-44 第n小的质数


    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
      输入一个正整数n,求第n小的质数。
    输入
      一个不超过10000的正整数n。
    输出
      第n小的质数。
    样例输入
    10
    

    样例输出
    29
    

    提示

    来源



    问题分析

      可以用试除法生成素数并且放入表中。

      这样做的好处在于速度会稍微快一些,试除时只需要用素数去试除。

    程序说明

      (略)



    参考链接:(略)


    AC的C++语言程序:

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    typedef unsigned long long ULL;
    
    const int N = 10000;
    ULL prime[N+1] = {2, 3};
    
    bool isprime(ULL prime[], int n)
    {
        ULL end = (ULL)sqrt(n);
        int i;
        for(i=1; prime[i]<=end; i++)
            if(n % prime[i] == 0)
                return false;
        return true;
    }
    
    void genprime(ULL prime[], int n)
    {
        int k = 2;
        for(int i=5; k<n; i+=2)
            if(isprime(prime, i))
                prime[k++] = i;
    }
    
    int main()
    {
        int n;
    
        cin >> n;
    
        if(n > 2)
            genprime(prime, n);
        cout << prime[n-1] << endl;
    
        return 0;
    }



  • 相关阅读:
    函数
    文件处理及处理模式
    字符编码
    元组,字典和集合的用法
    数字类型、字符串和列表
    计算机硬件介绍
    数据类型及语法介绍
    初识python
    设计模式
    最近的时候
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563807.html
Copyright © 2011-2022 走看看