求第n个质数

时间:2019-09-20
本文章向大家介绍求第n个质数,主要包括求第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