python求2-100000的质数的个数
时间: 2024-05-05 10:15:52 浏览: 146
以下是Python代码实现:
```python
import math
def is_prime(n):
if n <= 1:
return False
elif n <= 3:
return True
elif n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
count = 0
for i in range(2, 100001):
if is_prime(i):
count += 1
print(count)
```
运行结果为:9592
解释:2到100000之间共有9592个质数。
相关问题
python求1-100质数分多行输出,每行八个数据
下面是一个求1-100质数的 Python 代码,并且每行输出八个数据的示例:
```
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
count = 0
for i in range(2, 101):
if is_prime(i):
print(i, end='\t')
count += 1
if count % 8 == 0:
print()
```
这个代码使用了一个 is_prime() 函数来判断一个数是否为质数,然后使用一个计数器 count 来记录已经输出的质数的个数。在输出质数时,我们使用 print() 函数的 end 参数来指定分隔符为制表符(\t),这样每个质数之间就会用制表符隔开。然后,在每输出了八个质数时,我们就调用一次 print() 函数来输出一个换行符,这样就可以将质数分多行输出了。输出结果如下:
```
2 3 5 7 11 13 17 19
23 29 31 37 41 43 47 53
59 61 67 71 73 79 83 89
97
```
求0-100000以内素数的个数
这是一个典型的计算题,您可以使用埃氏筛法或欧拉筛法等算法来求解。我可以提供代码实现示例,如下所示:
```python
def count_primes(n):
is_prime = [True] * (n+1)
is_prime[0], is_prime[1] = False, False
count = 0
for i in range(2, n+1):
if is_prime[i]:
count += 1
for j in range(i*i, n+1, i):
is_prime[j] = False
return count
print(count_primes(100000))
```
执行以上代码,可以得到0-100000以内素数的个数为9592个。希望能够帮助到您!
阅读全文