我是一个pythonnoob,在设置一个循环来检查一个intz是否可以被一组数字整除,例如被1-10整除。我写了下面的代码片段,但是它们都返回X=[z的所有数字]。。。i、 e.他们不能应用if条件,以便在给定范围/集合内对所有n个模块进行检查。
X = []
z = 1
while z in range(1,1000):
if all(z % n == 0 for n in range(1,21)):
X.append(z)
z += 1
也尝试过:
^{pr2}$以及
X = []
for z in range(1,1000000):
if all(z % n == 0 for n in range(1,21)):
X.append(z)
你知道这些(或至少一个)案例出了什么问题吗? 谢谢你的帮助!
编辑:是错误的,固定答案。在
你在用numpy吗?有一些有趣的事情发生在纽比和它的版本。在
似乎有用。第二个例子,我似乎没有初始化。第三种似乎有效。在
注:注意事实(21)相当大,肯定大于1000000——这不是一个完美的结果,但它可能比第一个答案低一两个因子(质数分解yadda yadda)
问题不在于Python,而在于你的数学。
x % n == x
如果x小于n。特别是,小于21的整数不能是小于21的每个数字的零模。3 % 18
是3。所以你需要重新考虑你的要求。如果你真的想找到一个能被1到21的数整除的数,你得到的唯一的数将是巨大的数(例如,21!)。在相关问题 更多 >
编程相关推荐