质数表的构建

前言

最近,有很多人问我如何既能保证时间复杂度低又能正确的打出质数表,那么今天,我就给各位读者带来了几种打出质数表的(打表)的方法。

1.质数的介绍

质数,又称素数是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除的数。换句话说,质数只有两个正因数:1和它自己。例如,2、3、5、7、11等都是质数。2是最小的质数,也是唯一的偶质数,其他质数都是奇数。

质数在数学中具有重要地位,尤其在数论领域。它们是构成自然数的“基本单元”,因为任何大于1的自然数都可以唯一地分解为若干质数的乘积,这被称为质因数分解。例如,12可以分解为2×2×3,而28可以分解为2×2×7。质因数分解的唯一性是数论中的一个重要定理,称为算术基本定理。

质数的分布并不规则,随着数值的增大,质数出现的频率逐渐降低,但它们却无穷无尽。这一结论由古希腊数学家欧几里得在《几何原本》中首次证明。尽管质数的分布看似随机,数学家们仍在努力寻找其中的规律。著名的黎曼猜想就与质数的分布密切相关,至今尚未被完全证明。

质数在现代密码学中也扮演着关键角色,尤其是在RSA加密算法中,质数的特性被用来确保信息的安全传输。大质数的生成和分解是加密技术的核心,因为分解一个大质数的乘积在计算上极其困难,从而保证了信息的安全性。

总之,质数不仅是数学中的基础概念,还在实际应用中发挥着重要作用。它们的研究不仅推动了数学理论的发展,也为现代科技提供了重要的工具。质数的奥秘仍然吸引着无数数学家的探索。

2.普通质数打表

说了那么多,该回归正题了!
普通质数打表,意味着他没有什么特别的有点,他的原理就是:从2~n 中依次遍历,每一个数都进入一次P函数里,如果除了1和它本身(i)还有别的因数的话,直接跳过,否则输出

代码:

#include
using namespace std;

// 判断是否为质数
bool P(int n) {
   
    if (n < 2) return false; // 小于2的数不是质数
    if (n == 2) return true; // 2是唯一的偶质数
    if (n % 2 == 0) return false; // 排除其他偶数
    for (int i = 3; i 

你可能感兴趣的:(c,算法,数据结构,c++)