提供判断素数的2种算法,要求写出算法伪代码 和C/C++描述
时间: 2024-09-22 19:05:01 浏览: 117
当然,这里有两种常见的判断素数的算法:
**1. 菲波那契筛法 (也称为埃拉托斯特尼筛法)**
这是一种用于找出一定范围内所有质数的传统算法。以下是简单的伪代码:
```text
function sieveOfEratosthenes(n):
primes = [True] * (n + 1) # 初始化数组为全真
primes[0], primes[1] = False, False # 0和1不是质数
for i in range(2, int(sqrt(n)) + 1): # 只需检查到√n
if primes[i]: # 如果i是质数
for j in range(i*i, n+1, i): # 将其倍数标记为非质数
primes[j] = False
return [i for i in range(n + 1) if primes[i]] # 返回所有质数
```
**2. 直接试除法**
这种方法简单直观,通过循环检查每个数是否能整除小于它的数,如果都不能,则该数为质数。以下是伪代码:
```text
function isPrime(number):
if number < 2:
return false
for i from 2 to sqrt(number):
if number % i == 0: # 如果找到因子
return false
return true # 没有找到因子,所以是质数
function findPrimes(n):
primes = []
for i from 2 to n:
if isPrime(i):
primes.append(i)
return primes
```
阅读全文