在Python中查找数字的倍数

2024-04-29 17:16:55 发布

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

我试图写一个代码,让我找到一个数字的前几个倍数。这是我的一次尝试:

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()函数,但我不知道在哪里。


Tags: andintegers代码infordefas数字
3条回答

如果您试图找到count的第一个m倍数,则类似这样的操作将有效:

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

或者,您可以使用range执行此操作:

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

注意,这两个都是从0开始的倍数-如果你想从m开始,你需要用这么多来抵消它:

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

基于数学概念,我明白:

  • 所有自然数除以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]

进一步阅读:

这是你想要的吗?

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] 

相关问题 更多 >