python - 试图建立
问题描述
我正在尝试在 python 中构建 Eratosthenes 的筛子,但得到的结果与我预期的不同。我不明白为什么。当我运行下面的代码时,我应该得到素数,但我也没有得到列表中的素数。如果你运行代码,你会明白我的意思。
#sieve of eratosthenes
#Objective: To find the sum of primes up to a number
target_number = 100
list_of_all_numbers = [*range(3,target_number,2)]
print(*list_of_all_numbers)
for number in list_of_all_numbers:
for i in list_of_all_numbers:
if number != i and number%i == 0 and number in list_of_all_numbers:
list_of_all_numbers.remove(number)
break
sum = 0
for i in list_of_all_numbers:
sum += i
print(sum+2)
print(list_of_all_numbers)
解决方案
这可以通过存储“非素数”然后将其他数字相加来实现,
#sieve of eratosthenes
#Objective: To find the sum of primes up to a number
target_number = 100
list_of_all_numbers = [*range(3,target_number,2)]
print(*list_of_all_numbers)
notPrimes = []
primes = []
for number in list_of_all_numbers:
for i in list_of_all_numbers:
if number != i and number%i == 0:
if number not in notPrimes:
notPrimes.append(number)
break
sum = 0
for number in list_of_all_numbers:
if number not in notPrimes:
sum += number
primes.append(number)
print(sum+2)
print(notPrimes)
print(primes)
推荐阅读
- android - 当用户进入地理围栏或居住在地理围栏内时,应用程序意外关闭
- javascript - 用户单击选定按钮时显示详细信息
- powerbi - 隐藏和取消选择“启用加载”有什么区别?
- flutter - 在 Flutter 的屏幕之间传递 Hive 框
- android - 视图ID的整数值在android中是否始终不变?
- machine-learning - 使用具有多个自变量的分类模型进行预测
- laravel - Bangla 字体显示不匹配 - Laravel Dompdf
- ruby - 得到这个'未定义的方法'获取''
- javascript - Javascript - 一键调用ajax和一键提交表单使用html5表单验证
- reactjs - Cloudinary 在第一次尝试时返回空 url