python - 循环并查找合数/质数并将其保存到集合中

标签 python

我试图遍历一个值列表并找出每个数字是质数还是合数并将其保存在函数下的集合中。我遇到的问题是它没有找到任何东西,它只是在保存数字的运行计数。例如,此脚本只是保存 1-19 之间的所有数字。我也明白它实际上并没有将值保存在一组中,但我会弄清楚的。大多数情况下需要帮助才能真正使值成为质数/复合值。

def prime(num):
    prime_set = set()
    composite_set = set()
    for i in range(2,num):
        if num % i == 0:
            composite_set.update([num])
        else:
            prime_set.update([num])
    return(prime_set)

for num in range(1,20):
    print(num,prime(num))

最佳答案

因为您的 if/else阻止 prime , num将添加到 prime_set如果 任何 号码range(2,num)无法平均分成 num .自 num-1不均匀分成 num每当 num至少为 3,num将始终添加到 prime_set .
您要做的只是添加numprime_set如果你没有找到任何除数。对您的代码最简单的更改是。

def prime(num):
    prime_set = set()
    composite_set = set()
    for i in range(2,num):
        if num%i == 0:
            composite_set.add(num)
            break # You don't need to keep searching

    if not composite_set: # That is, it's empty.
        prime_set.add(num)

    return prime_set

关于python - 循环并查找合数/质数并将其保存到集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64690043/

相关文章:

Python numpy 数组合并操作

python : Sending html format email through SMTP

python - 在 Python 中读取 DNS 数据包

python - PIL : make image transparent on a percent scale

python - Kotti 中的内容元素可以有多个通用 subview 吗?

python - 清除剪贴板?

python :如果行[1].upper().find(brand)!=-1:

python - container.__iter__() 和 iterator.__iter__() 有什么区别?

python - 使用 for 循环创建 20 个空列表

python - 矢量化 Python 代码