我目前正试图写一个程序,用python解决Euler项目中的第5个问题,我不想在找到解决方案之前再看其他的解决方案。到目前为止,我的代码如下。下面是问题https://projecteuler.net/problem=5的链接
a=1000000
n=[int()]
for Num in range(a):
NumberList=[]
for n in range(1,20):
remainder=Num%n
if remainder==0:
NumberList.append(Num)
print(min(NumberList))
我将a设为200万,因为我预测解决方案将在这个范围内。 我试着让我的代码遍历从1到100万的每一个数字,它可以被从1到20的每一个数字整除。然后我的代码应该遍历每一个可以被整除到数字列表的值,然后用min函数我找到这个范围内每一个值都可以整除的最小整数。我知道我的代码可能不是最好的,我刚刚开始编程,所以任何改进的建议都将不胜感激。我的代码不断返回(范围(a)-1)作为解决方案,我不知道为什么?你知道吗
min(NumberList)不是你想要的结果你想要的。那个这个列表中的内容就是所有可以被(1,21)整除的数字
好吧,让我们看看因素。你知道吗
在我开始之前,我想说我真的不明白你在节目中的意图。你知道吗
为了方便起见,我们取一个较小的值。在程序中说
a = 200
和c
完全不是必需的,因为您没有使用c
。因此这里没有使用。你知道吗现在首先,您已经在两个for循环之间编写了
NumberList=[]
,这意味着您正在重新初始化NumberList
。这意味着直到a-2
或这里198
为止的所有迭代都是无用的。我不明白你为什么要采用这种算法,但如果这是你的意图,那就让我们转到第二点其次,在这种情况下,通常我们推除数,但在您的代码片段中,您推的是数字。这意味着你不是在写
NumberList.append(n)
,而是在写NumberList.append(Num)
。我还是不明白你的意图。你知道吗现在如果我把第一点和第二点结合起来,我能看到的是你每次只会按
a-1
,这意味着min(NumberList)
或max(NumberList)
没有效果,因为你在数组中有相同的数字。这个数字总是a-1
。你知道吗注意对于此类问题,请先阅读文档并调试代码,如果遇到问题,欢迎在此处询问
相关问题 更多 >
编程相关推荐