python1000以内3和7的倍数只和

python sum = 0 for i in range(3, 1000+1):if (i % 3 == 0) or (i % 7 == 0):sum += i print(sum)这段代码首先初始化一个变量`sum`为0,然后使用`for`循环遍历从3到1000的所有整数。对于每个整数`i`,代码检查它是否能被3或7整除,即`i % 3 == 0`或`i % 7 == 0...
python1000以内3和7的倍数只和
在编写程序时,计算1000以内3和7的倍数之和是一种常见的练习,有助于理解循环和条件语句的基本应用。一个简单的实现方法是使用循环遍历从3到1000的整数,并检查每个整数是否能被3或7整除。如果满足条件,则将其累加到总和中。

具体来说,可以这样编写代码:

python

sum = 0

for i in range(3, 1000+1):

if (i % 3 == 0) or (i % 7 == 0):

sum += i

print(sum)

这段代码首先初始化一个变量`sum`为0,然后使用`for`循环遍历从3到1000的所有整数。对于每个整数`i`,代码检查它是否能被3或7整除,即`i % 3 == 0`或`i % 7 == 0`。如果条件满足,则将`i`的值累加到`sum`中。最后,程序输出累加的结果。

值得注意的是,这种方法虽然简单直接,但效率较低,特别是在处理较大范围的数字时。更高效的算法可以通过数学方法减少循环次数。例如,可以先计算3和7的最小公倍数21,然后利用数学公式来计算特定范围内的倍数之和。

使用这种方法,可以简化计算过程,提高程序效率。具体实现可以参考以下代码:

python

def sum_of_multiples(n, a, b):

lcm = (a * b) // gcd(a, b)

limit = n // lcm

return lcm * (limit * (limit + 1) // 2 - (limit // 3) * ((limit // 3) + 1) // 2 - (limit // 7) * ((limit // 7) + 1) // 2 + (limit // 21) * ((limit // 21) + 1) // 2)

print(sum_of_multiples(1000, 3, 7))

上述代码中,`sum_of_multiples`函数利用数学公式来计算给定范围内3和7的倍数之和,其中`lcm`为最小公倍数,`gcd`为最大公约数。这种方法不仅提高了效率,还使代码更加简洁。2024-12-18
mengvlog 阅读 105 次 更新于 2025-10-31 02:16:45 我来答关注问题0
檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部