python,求1到100以内的质数,简单的算法
时间: 2024-12-25 15:26:38 浏览: 0
在Python中,我们可以使用一个简单的方法来找出1到100之间的质数。质数是只有两个正因数(1和自身)的自然数,这里是一个常见的“埃拉托斯特尼筛法”实现:
```python
def find_primes(n):
primes = [True] * (n+1) # 创建一个布尔列表表示所有数字都是质数
primes[0], primes[1] = False, False # 0和1不是质数
for i in range(2, int(n**0.5)+1): # 遍历从2到根号n
if primes[i]: # 如果i是质数
for j in range(i*i, n+1, i): # 将i的倍数标记为非质数
primes[j] = False
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime] # 把质数位置转换为实际数值
return prime_numbers[:100] # 返回前100个质数
# 调用函数并打印结果
print(find_primes(100))
```
相关问题
python,求1到100以内的质数
在Python中,我们可以使用一种常见的算法,称为埃拉托斯特尼筛法(Sieve of Eratosthenes),来找出1到100之间的所有质数。下面是一个简单的实现:
```python
def find_primes(n):
primes = [True] * (n+1)
primes[0], primes[1] = False, False
p = 2
while p**2 <= n:
if primes[p]:
for i in range(p**2, n+1, p):
primes[i] = False
p += 1
return [i for i in range(2, n+1) if primes[i]]
prime_numbers = find_primes(100)
print(prime_numbers)
```
这个函数首先创建一个布尔数组`primes`,并将所有元素初始化为`True`,表示它们都是潜在的质数。然后从第一个质数2开始,将它的倍数标记为非质数。接着检查下一个未被标记的数,继续这个过程,直到遍历到平方根以上的数。最后返回的就是1到100范围内的所有质数。
python输出1~100以内所有素数
在Python中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出1到100之间的所有素数。这是一种简单而有效的算法,通过不断排除能整除已知素数的数,最终筛选出所有的素数。以下是实现这个算法的代码:
```python
def find_primes(n):
primes = [True] * (n + 1)
p = 2
while p * p <= n:
if primes[p]:
# 将p的倍数标记为非素数
for i in range(p * p, n + 1, p):
primes[i] = False
p += 1
# 输出1到n内的素数
for p in range(2, n + 1):
if primes[p]:
print(p)
# 调用函数找出1到100之间的素数
find_primes(100)
```
当你运行这段代码,它会打印出1到100之间所有的素数。
阅读全文