查找包含3个因子的数字列表

时间:2018-01-21 21:14:06

标签: python math

我正在尝试输出只有3个因素的数字。我写了一个代码来输出所有因子,但是无法输出它有3个因子的数字。例如,如果一个列表有1,5,6,7 ..它将输出6 ..因为6有三个因素:1,2和3 ..(本身)不是一个因素。这就是我现在所拥有的:

def factors(n):
    result = []

    for i in range(1, n + 1):
        if n % i == 0:
            result.append(i)

    return result

1 个答案:

答案 0 :(得分:2)

一个简单的例子如下,你循环浏览一些数字并测试每个数字以查看它是否恰好有三个因素。它虽然不会特别有效......

#This will be your answers
results=[]
#Whatever you want your upper bound to be
highestValue=100

#Loop through up to your highest value
for eachVal in range(highestValue):
    #If the length of the factor list is exactly 3, store the answer
    if len(factors(eachVal))==3:
        results.append(eachVal)

print(results)

编辑:当然,这会使用您的代码段中的“因素”功能,因此请确保它位于同一模块中,或者先导入它。