簡単 0件解決済み 正答率0%

倍数の合計

指定された因数のいずれかで割り切れる値を、上限未満で加算します。

上限未満の正の整数を考えます。値が0でない因数の少なくとも1つで割り切れる場合、その値を含めます。複数の因数で割り切れる場合でも、各値は1回だけ数えます。0の因数は無視します。因数が [3, 5] の場合は、よく知られた「3または5の倍数」の課題になります。

sum_of_multiples(limit, factors) を実装してください。

入力

limit: 排他的な上限値です。

factors: 倍数として対象となる因数のリストです。

出力

条件を満たす正の整数のうち、重複しない値の合計を返してください。

制約

0 ≤ limit ≤ 100,000。因数は0個から20個まで指定でき、それぞれ0から100,000の範囲です。同じ因数が複数回含まれていても構いません。

例

例 1
入力:
limit = 12
factors = [3, 5]

期待される出力:
expected = 33
入力:
long long limit = 12;
std::vector<long long> factors = {3, 5};

期待される出力:
long long expected = 33;
入力:
long limit = 12;
long[] factors = new long[] {3, 5};

期待される出力:
long expected = 33;

解説

含まれる値は3, 5, 6, 9, 10です。これらの合計は33です。

例 2
入力:
limit = 10
factors = [2, 4]

期待される出力:
expected = 20
入力:
long long limit = 10;
std::vector<long long> factors = {2, 4};

期待される出力:
long long expected = 20;
入力:
long limit = 10;
long[] factors = new long[] {2, 4};

期待される出力:
long expected = 20;

解説

2, 4, 6, 8を含めます。4と8は両方の因数に該当しますが、1回だけ数えます。

参考資料

この課題はCodeUtility用に調整されています。上記の説明と制約に従ってください。

他の人の解答から学ぶ

コミュニティの解答

まだ公開された解答がありません。この課題を解いて最初の解答を共有しましょう。