All challenges
Easy 0 solved 0% acceptance

Sum of Multiples

Add values below a limit divisible by any supplied factor.

Problem

Consider positive integers strictly below limit. Include a value if it is divisible by at least one nonzero factor. Count each included value once even if several factors divide it. Ignore zero factors. Factors [3, 5] give the familiar multiples-of-3-or-5 task.

Implement sum_of_multiples(limit, factors).

Input

limit: The exclusive upper bound.

factors: The factors whose multiples are eligible.

Output

Return the sum of distinct eligible positive integers.

Constraints

0 ≤ limit ≤ 100,000. There may be 0 through 20 factors, each between 0 and 100,000. Duplicate factors are allowed.

Examples

Example 1
Input:
limit = 12
factors = [3, 5]

Expected output:
expected = 33
Input:
long long limit = 12;
std::vector<long long> factors = {3, 5};

Expected output:
long long expected = 33;
Input:
long limit = 12;
long[] factors = new long[] {3, 5};

Expected output:
long expected = 33;

Explanation

The included values are 3, 5, 6, 9, and 10. Their sum is 33.

Example 2
Input:
limit = 10
factors = [2, 4]

Expected output:
expected = 20
Input:
long long limit = 10;
std::vector<long long> factors = {2, 4};

Expected output:
long long expected = 20;
Input:
long limit = 10;
long[] factors = new long[] {2, 4};

Expected output:
long expected = 20;

Explanation

Include 2, 4, 6, and 8. Values 4 and 8 are counted once despite matching both factors.

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.