【发布时间】:2021-05-18 13:47:04
【问题描述】:
我已经给出了一个数字列表,问题是找到具有最多不同质因数的数字。我试过这段代码来计算小于给定数字的素数:
number=int(input())
def is_prime(n):
if n<=1:
return False
for i in range(2,n):
if n%i==0:
return False
return True
primes=[]
count=0
for x in range(2,number):
if is_prime(x)==True:
count+=1
primes.append(x)
print(primes)
print(count)
但我不知道如何继续确定所需的数字。
【问题讨论】:
-
那么 20 有多少个质因数? 2个还是3个?
-
哇,有时间限制吗?您可能想研究使用一种有效的方法(例如埃拉托色尼筛法)预先计算素数数组,然后与之进行比较。
-
你应该有数字列表。那么你必须计算列表中每个数字的质数。最终得到质数最多的那个
-
您是否有一个任意数字的列表,您需要从中确定具有最多质因数的数字,或者是否有特定形式的列表 [1,n]?您的措辞建议前者,但您的代码建议后者。这是两个非常不同的问题。对于第二个问题,可以将其视为如何构造一个具有许多质因数的数的问题。
-
@AvenDesta 必须是 2.(2 和 5)。但我很惊讶你从哪里带来了 20? :D
标签: python