python - 如何计算给定范围内的总质数
问题描述
我试图找到一个范围内的素数(输入将由用户决定)和素数的总数。
我能够找到素数,但不能做部分 - 计算素数。谁能帮我?这是程序
#!/usr/bin/env python
import math
lower=input("lower value:")
upper=input("upper value:")
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
if num>1:
for i in range (2,num):
if num % i==0:
break
else: print(num)
def count_prime(num,lower,upper):
count_prime= 0
for x in num:
if lower <= x <= upper:
count_prime += 1
print ( "count_prime:",count_prime )
结果输出如下(范围在10到100之间)
('质数之间', 10, 'and', 100, 'are:') 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 ('count_prime:', )
解决方案
最简单的方法是每次找到质数时都有一个递增的变量。因此,当您打印数字时,还要将该计数加一。您可以通过其他各种方式来做到这一点,即将每个素数保存在一个数组中,然后计算元素的数量等。
与变量有关:
lower=input("lower value:")
upper=input("upper value:")
count = 0
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
if num>1:
for i in range (2,num):
if num % i==0:
break
else:
print(num)
count += 1
print ( "count_prime:", count )
与数组有关:
lower=input("lower value:")
upper=input("upper value:")
array = []
print("prime numbers between", lower,"and", upper, "are:")
for num in range (lower, upper+1):
if num>1:
for i in range (2,num):
if num % i==0:
break
else:
print(num)
array.append(num)
print ( "count_prime:", len(array))
推荐阅读
- pyspark - 在pyspark中逐行比较两个数据框
- java - java中的模10 ^ 9 + 7
- arrays - 将 CSV 文件转换为数组会消耗大量内存
- html - 无论实际值如何,HTML 输入类型“tel”属性“autocomplete”都停留在“tel-national”上
- c++ - 启用优化时 C++ 模板的行为不同(发布)
- javascript - SyntaxError:导入声明可能只出现在模块的顶层,如何解决?
- apache-nifi - 在nifi中处理带有空格的日期列
- azure-active-directory - Azure AD 不记名令牌有错误的“aud”声明
- html - 单击其他元素时更新一个 HTML 元素
- python - 替换文件中第 n 次出现之间的所有内容