在Python中查找数字的倍数

时间:2013-01-27 23:01:46

标签: python math range

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

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

8 个答案:

答案 0 :(得分:7)

如果您要查找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)

答案 1 :(得分: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] 

答案 2 :(得分:1)

对于前10个倍数,请说

>>> [5*n for n in range(1,10+1)]
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

答案 3 :(得分:0)

def multiples(n,m,starting_from=1,increment_by=1):
    """
    # Where n is the number 10 and m is the number 2 from your example. 
    # In case you want to print the multiples starting from some other number other than 1 then you could use the starting_from parameter
    # In case you want to print every 2nd multiple or every 3rd multiple you could change the increment_by 
    """
    print [ n*x for x in range(starting_from,m+1,increment_by) ] 

答案 4 :(得分:0)

基于数学概念,我理解:

  • 所有自然数除以n,剩下的0n的倍数

因此,以下计算也适用于解决方案(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]

进一步阅读:

答案 5 :(得分:0)

您可以这样做:

def mul_table(n,i=1):
    print(n*i)
    if i !=10:
        mul_table(n,i+1)
mul_table(7)

答案 6 :(得分:0)

如果这是您要寻找的-

查找给定数字和限制之间的所有倍数

def find_multiples(integer, limit):
    return list(range(integer,limit+1, integer))

这应该返回-

Test.assert_equals(find_multiples(5, 25), [5, 10, 15, 20, 25])

答案 7 :(得分:0)

对于前 10 个 5 的倍数,您可以这样做

import numpy as np
#np.arange(1,11) array from 1 to 10 
array_multipleof5 = [5*n for n in np.arange(1,11)]
array_multipleof5 = np.array(array_multipleof5)
print(array_multipleof5)