class Solution {
public:
int sumOfMultiples(int n) {
}
};
2652. 倍数求和
给你一个正整数 n
,请你计算在 [1,n]
范围内能被 3
、5
、7
整除的所有整数之和。
返回一个整数,用于表示给定范围内所有满足约束条件的数字之和。
示例 1:
输入:n = 7 输出:21 解释:在[1, 7]
范围内能被 3、5、
7 整除的所有整数分别是
3、5、6、7
。数字之和为21
。
示例 2:
输入:n = 10 输出:40 解释:在[1, 10]
范围内能被 3、5、
7 整除的所有整数分别是
3、5、6、7、9、10
。数字之和为40
。
示例 3:
输入:n = 9 输出:30 解释:在[1, 9]
范围内能被 3、5、
7 整除的所有整数分别是
3、5、6、7、9
。数字之和为30
。
提示:
1 <= n <= 103
原站题解
cpp 解法, 执行用时: 4 ms, 内存消耗: 6.1 MB, 提交时间: 2023-10-17 09:29:19
class Solution { public: int sumOfMultiples(int n) { return s(n, 3) + s(n, 5) + s(n, 7) - s(n, 15) - s(n, 21) - s(n, 35) + s(n, 105); } int s(int n, int m) { return (1 + n / m) * (n / m) / 2 * m; } };
golang 解法, 执行用时: 4 ms, 内存消耗: 1.9 MB, 提交时间: 2023-05-05 15:53:49
func s(n, m int) int { return (1 + n/m) * (n / m) / 2 * m } func sumOfMultiples(n int) int { return s(n, 3) + s(n, 5) + s(n, 7) - s(n, 15) - s(n, 21) - s(n, 35) + s(n, 105) }
java 解法, 执行用时: 0 ms, 内存消耗: 38.4 MB, 提交时间: 2023-05-05 15:53:35
class Solution { public int sumOfMultiples(int n) { return s(n, 3) + s(n, 5) + s(n, 7) - s(n, 15) - s(n, 21) - s(n, 35) + s(n, 105); } private int s(int n, int m) { return (1 + n / m) * (n / m) / 2 * m; } }
python3 解法, 执行用时: 40 ms, 内存消耗: 16 MB, 提交时间: 2023-05-05 15:53:16
class Solution: def sumOfMultiples(self, n: int) -> int: def s(m: int) -> int: return (1 + n // m) * (n // m) // 2 * m return s(3) + s(5) + s(7) - s(15) - s(21) - s(35) + s(105)