6.1.4 蓝桥杯数学之素数朴素判定&埃氏筛法
引言
在编程竞赛如蓝桥杯中,素数的判定是一个经典且常见的问题。本文将探讨两种常用的素数判定方法:朴素判定法和埃拉托斯特尼筛法(埃氏筛法)。
素数朴素判定法
素数是只有1和自身两个因数的自然数。朴素判定法是最直接的素数判定方法,它的核心思想是尝试将给定数 n 除以小于它的所有自然数。
实现步骤:
- 从2开始,一直到 n(因为如果 n 有大于 n 的因数,必然存在小于 n 的配对因数)。
- 如果 n 能被其中任何一个数整除,则 n 不是素数。
- 如果 n 不能被任何一个数整除,则 n 是素数。
代码示例(C++):
#include <iostream>
#include <cmath>
using namespace std;
bool isPrimeNaive(int n) {
if (n <= 1) return false;
f