LQ0096 质数试除法

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0096 质数试除法相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2019初赛

问题描述
我们知道第一个质数是2、第二个质数是 3、第三个质数是 5……请你计算第 2019个质数是多少?

问题分析
可以用试除法和筛选法来解题。
试除法可以只考虑奇数,这样会快许多。
筛选法需要数组存储。

AC的C语言程序(试除法)如下:

/* LQ0096 质数 */

#include <stdio.h>

#define N 2019

int judge(int n)

    for (int i = 3; i * i <= n; i += 2)
        if (n % i == 0) return 0;
    return 1;


int main()

    int i, cnt = 1;  /* 2是一个质数 */
    for (i = 3; ; i += 2)
        if (judge(i))
            if (++cnt == N)
                break;

    printf("%d\\n", i);

    return 0;

以上是关于LQ0096 质数试除法的主要内容,如果未能解决你的问题,请参考以下文章

试除法判断质数

866. 试除法判定质数

简单质数筛法-试除法,Eratosthenes筛法,线性筛法

AcWing 866. 试除法判定质数(素数判定)

数论

第四章 数学知识