在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()
函数,但我不知道该放在哪里。
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
如果你想找到第一个 count
个 m
的倍数,可以用下面的方式:
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)