2022-01-21 01:00:18 +05:30
|
|
|
---
|
|
|
|
id: 5900f4ef1000cf542c510001
|
2022-01-22 20:38:20 +05:30
|
|
|
title: '問題 386: 反鎖の最大長'
|
2022-01-21 01:00:18 +05:30
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302050
|
|
|
|
dashedName: problem-386-maximum-length-of-an-antichain
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$n$ を整数、 $S(n)$ を $n$ の約数の集合とします。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$A$ に要素が 1 つのみ含まれるか、または、$A$ のいずれの要素も $A$ の他の要素によって割り切れない場合、$S(n)$ の部分集合 $A$ は $S(n)$ の反鎖と呼ばれます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
例: $S(30) = \\{1, 2, 3, 5, 6, 10, 15, 30\\}$
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$\\{2, 5, 6\\}$ は $S(30)$ の反鎖ではありません。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
しかし $\\{2, 3, 5\\}$ は $S(30)$ の反鎖です。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$N(n)$ を $S(n)$ の反鎖の最大長とします。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$1 ≤ n ≤ {10}^8$ のとき、$\sum N(n)$ を求めなさい。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
`maximumLengthOfAntichain()` は `528755790` を返す必要があります。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(maximumLengthOfAntichain(), 528755790);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function maximumLengthOfAntichain() {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
maximumLengthOfAntichain();
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|