1.7 KiB
1.7 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5900f4e51000cf542c50fff6 | 問題 374: 整数分割の最大の積 | 5 | 302036 | problem-374-maximum-integer-partition-product |
--description--
数 n の整数分割とは、n を正の整数の和として表す方法です。
加数や被加数の順序のみが異なる分割は同じものとみなされます。 n を相異なる部分に分割することは、いずれの部分も一度のみ現れるような形で n を分割することです。
5 を相異なる部分に分割すると、次のようになります。
5, 4 + 1, 3 + 2
n を相異なる部分に分割したとき、各部分の積が最大になるような分割における積を f(n) とします。また、その積をもたらすような n の分割の要素数を m(n) とします。
したがって、f(5) = 6, m(5) = 2 となります。
n = 10 の場合、積が最大となる分割は 10 = 2 + 3 + 5 で、 f(10) = 30 と m(10) = 3 が導かれます。 そしてそれらの積は f(10) \times m(10) = 30 \times 3 = 90 となります。
$1 ≤ n ≤ 100 のとき、\sum f(n) \times m(n) = 1\,683\,550\,844\,462$ となることを確認できます。
1 ≤ n ≤ {10}^{14} のとき、\sum f(n) \times m(n) を求めなさい。 5000 万番目の素数 982\\,451\\,653 で割った余りで答えること。
--hints--
maximumIntegerPartitionProduct() は 334420941 を返す必要があります。
assert.strictEqual(maximumIntegerPartitionProduct(), 334420941);
--seed--
--seed-contents--
function maximumIntegerPartitionProduct() {
return true;
}
maximumIntegerPartitionProduct();
--solutions--
// solution required