一个范围内所有数字的总和没有数字可以被python中的x整除

时间:2014-01-22 08:33:19

标签: python

我正在尝试创建一个代码(在python中),我可以输入一个范围,除了那些可以被x整除的数字(我也选择)之外,它会找到所有数字的总和。

例如:

如果范围是0<N<10x = 3,那么我希望代码对数字求和 1 + 2 + 4 + 5 + 7 + 8 并输出27。

或者范围是0<N<5x = 2我希望代码对数字求和 1 + 3 并输出4

但是,问题是我不知道该怎么做。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:3)

对于您的第二个示例:(0<N<5x=2):

sum(i for i in range(1, 5) if i%2)

答案 1 :(得分:2)

def fn(N, x):
    sum = 0
    for i in range(N):
        if i%x:
            sum += i
    return sum

如果您是新手,请在python中阅读loopsranges

答案 2 :(得分:1)

你可以这样做:

>>> div = 3
>>> n = 10 
>>> num_div = filter(lambda x: x%div, range(n))
>>> sum(num_div)
27

或作为一种功能

def func(n,div):
   return sum(filter(lambda x: x%div, range(n))

答案 3 :(得分:0)

其他答案隐含地假设范围始终从0开始。如果您希望能够设置范围的起点和终点,则可以使用:

def sumrange(start, stop, n):
    return sum(i for i in range(start, stop) if i%n)