所以我想得到一个给定数字的结果。问题是,代码打印错误的消息,而且它也不能处理所有的数字。为什么呢
这是获取因素的部分:
thefactors = []
d = 2
while d*d <= number:
while (number % d) == 0:
factors.append(d)
number //= d
d += 1
break
if number > 1:
factors.append(number)
print('The factors of {} are:'.format(number), thefactors)
发生了什么事,我该怎么解决
我看到的问题是,你们都在检查
d
的平方是否小于n
(d*d <= n
或d**2 <= n
),并且在发现因子时重新分配n
(n //= d
)。这不包括不必要的break
语句以下是我所做的:
此方法隐式检查
d**2
是否小于或等于n
,因为要满足while
条件,n // d
必须小于或等于d
,因此d**2
必须小于或等于n
要打印素因子分解,请执行以下操作:
存在多个问题:
num
)并打印修改后的值李>break
李>num > 1
,则只需print
返回结果李>以下是一个工作实现:
相关问题 更多 >
编程相关推荐