zoukankan      html  css  js  c++  java
  • 求第n个质数

    输入一个不超过 10000 的正整数 n,求第n个质数

    样例输入

    10

    样例输出

    29

    题目地址

    #include<stdio.h>
    #include<math.h>
    int xxx(int n){
        int flag = 0;
        float a = sqrt(n);
        for(int i = 2;i <= a;i++){
            if(n % i == 0)
                flag = -1;
        }
        if(flag ==0 )
            return 1;//不是素数
        else
            return 0;
    }
    
    
    
    int main(){
        int n;
        scanf("%d",&n);
        int c = 2;
        while(n){
            if(xxx(c))
            {
                if(n ==1 )
                  printf("%d",c);
                n--;
            }
            c++;
        }
        return 0;
    }

    思路总结:

    1. 质数的判定:

    假设一个数为n,只需要判定从 2  ~  √n  是否存在因数,存在因数就不是 质数

    2.题目求出的是第n个质数,可以在 最外层设置循环,while( n )  ,当找到一个质数后,不断-1,直到找到第 n 个,

    循环内部,依据一个控制变量 c 不断从2往后判定每个数是否是质数,找到一个质数就控制 n -1,每次判定是否是质数 后 控制变量++,直到找到第n个质数,结束所有循环

  • 相关阅读:
    第九章
    第十章
    第八章
    第七章
    第六章
    第五章
    第四章
    第三章
    第二章
    第一章
  • 原文地址:https://www.cnblogs.com/expedition/p/11553862.html
Copyright © 2011-2022 走看看