列表

详情


2652. 倍数求和

给你一个正整数 n ,请你计算在 [1,n] 范围内能被 357 整除的所有整数之和。

返回一个整数,用于表示给定范围内所有满足约束条件的数字之和。

 

示例 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

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int sumOfMultiples(int n) { } };

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)

上一题