我的代码通过遍历列表来获得整数值,这有什么问题吗?

2024-04-25 18:55:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正试图写一个程序,用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)作为解决方案,我不知道为什么?你知道吗


Tags: 项目代码inhttps程序forrange数字
2条回答

min(NumberList)不是你想要的结果你想要的。那个这个列表中的内容就是所有可以被(1,21)整除的数字

好吧,让我们看看因素。你知道吗

在我开始之前,我想说我真的不明白你在节目中的意图。你知道吗

为了方便起见,我们取一个较小的值。在程序中说a = 200c完全不是必需的,因为您没有使用c。因此这里没有使用。你知道吗

现在首先,您已经在两个for循环之间编写了NumberList=[],这意味着您正在重新初始化NumberList。这意味着直到a-2或这里198为止的所有迭代都是无用的。我不明白你为什么要采用这种算法,但如果这是你的意图,那就让我们转到第二点

其次,在这种情况下,通常我们推除数,但在您的代码片段中,您推的是数字。这意味着你不是在写NumberList.append(n),而是在写NumberList.append(Num)。我还是不明白你的意图。你知道吗

现在如果我把第一点和第二点结合起来,我能看到的是你每次只会按a-1,这意味着min(NumberList)max(NumberList)没有效果,因为你在数组中有相同的数字。这个数字总是a-1。你知道吗

注意对于此类问题,请先阅读文档并调试代码,如果遇到问题,欢迎在此处询问

相关问题 更多 >