在Python中查找一个数的倍数

16 投票
10 回答
205487 浏览
提问于 2025-04-17 13:52

我正在尝试写一段代码,让我可以找到一个数字的前几个倍数。这是我尝试过的其中一个方法:

def printMultiples(n, m):
for m in (n,m):
    print(n, end = ' ')

我发现,通过写 for m in (n, m):,可以让循环针对 m 这个数字进行操作。

def printMultiples(n, m):
'takes n and m as integers and finds all first m multiples of n'
for m in (n,m):
    if n % 2 == 0:
        while n < 0:
            print(n)

经过多次搜索,我只找到了一段 Java 的示例代码,所以我试着把它翻译成 Python,但没有得到任何结果。我感觉我应该在某个地方使用 range() 函数,但我不知道该放在哪里。

10 个回答

4

根据数学的基本概念,我明白:

  • 所有自然数,如果用 n 去除,余数是 0 的话,那这些数都是 n 的倍数。

所以,下面的计算也可以用来找出1到100之间的倍数:

>>> multiples_5 = [n for n in range(1, 101) if n % 5 == 0]
>>> multiples_5
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100]

如果想进一步了解,可以看看这些链接:

4

这个能满足你的需求吗?

print range(0, (m+1)*n, n)[1:]

当m等于5,n等于20的时候

[20, 40, 60, 80, 100]

或者更好的是,

>>> print range(n, (m+1)*n, n)
[20, 40, 60, 80, 100] 

适用于Python3及以上版本

>>> print(list(range(n, (m+1)*n, n)))
[20, 40, 60, 80, 100] 
13

如果你想找到第一个 countm 的倍数,可以用下面的方式:

def multiples(m, count):
    for i in range(count):
        print(i*m)

另外,你也可以使用范围来实现:

def multiples(m, count):
    for i in range(0,count*m,m):
        print(i)

注意,这两种方法都是从 0 开始计算倍数的。如果你想从 m 开始,就需要把它调整一下:

range(m,(count+1)*m,m)

撰写回答