美的に満足できる除数ツリーは、n任意の合成数に対して、の平方根に最も近い除数mのペアである2つの子ノードを持つ入力の除数のツリーです。左ノードはのより小さな除数で、右ノードはのより大きな除数でなければなりません。ツリーの素数には、子ノードがないはずです。あなたのツリーは、テキストアートまたは画像の形式である場合があります。テキストアート出力のルールは次のとおりです。mmm
間隔ルール
ツリー上のノードの間隔を空けるために、次のルールがあります。
- ルートから所定の深さにあるノードはすべて、出力の同じテキスト行にある必要があります。
/ \ NOT / \ / \ / 3 2 3 2
- 左側のノードでは、ノードが1桁の数字の場合、着信ブランチは右上になければなりません。そうでなければ、最後の数字のすぐ上になります。例:
/および/ 3 720
- 正しいノードの場合、ノードが1桁の数字である場合、着信ブランチは左上になければなりません。それ以外の場合、最初の数字のすぐ上にあります。例:
\および\ 7 243
- 出ていく左の枝の場合、枝は番号の左側に1スペースを開始する必要があります。例:
275 / 11
- 出て行く右の枝の場合、枝は数字の右に1スペースを開始する必要があります。例:
275 \ 25
- ツリーの同じレベルにある2つのノードの間には、少なくとも2つのスペースが必要です。同時に、ツリーの同じレベルにある2つのサブツリーは、それらの間のスペースをできるだけ少なくする必要があります。
**サブツリー**が近すぎるため、このツリーは機能しません。
504
/ \
/ \
/ \
/ \
21 24
/ \ / \
/ \ / \
3 7. 4 6
。/ \ / \
.2 2 2 3
このツリーには、ブランチ間に十分なスペースがありますが。
504
/ \
/ \
/ \
/ \
/ \
21 ... 24
/ \ ... / \
/ \ ... / \
3 7 ... 4 6
... / \ / \
... 2 2 2 3
- 2つのサブツリーがツリー上で近すぎる場合
/\、親の上のツリーにブランチの別の行を追加することにより、サブツリーを分離できます。
441
/ \最後の行はまだ入力されておらず、すでにスペースが不足しています。
21 21
/ \ / \
別のブランチの行を追加する
441
/ \ほぼ、しかし、7と3は近すぎます。
/ \もう1行はそれを行う必要があります。
21 21
/ \ / \
3 7 3 7
別のブランチの行を追加する
441
/ \これで完了です。
/ \
/ \
21 21
/ \ / \
3 7 3 7
例
完全な例として、24の除数ツリーは次のようになります。
24
/ \
/ \
4 6
/ \ / \
2 2 2 3
4と6は24の平方根に最も近い除数のペアです。4は小さいため、左側にあります。次の行の3の左にある数字2は、小さいためです。
63の除数ツリーは次のようになります。
63 and NOT like this 63
/ \ / \
7 9 3 21
/ \ / \
3 3 7 3
誤ったツリーでは、3と21は63の平方根に最も近い除数のペアではなく、3と7は適切にソートされていません。ただし、21のブランチの配置は正しいです。
42には、次のものが必要です。
42 and NOT 42
/ \ / \
6 7 21 2
/ \ / \
2 3 3 7
720を見てみましょう。サブツリーとサブツリーの間隔が正しく720なるように、5つのレベルのブランチが必要であることに注意してください。また、とには2つのレベルのブランチがあることに注意してください。なぜなら、とは正しい間隔を必要とする子ノードを持っているためです。24302430463024
720
/ \
/ \
/ \
/ \
/ \
24 30
/ \ / \
/ \ / \
4 6 5 6
/ \ / \ / \
2 2 2 3 2 3
挑戦
- あなたの仕事は、入力用に正しく間隔をあけた審美的に心地よい除数ツリーを構築することです。
nここnで、1は正の整数です。 - 出力には、先頭と末尾のスペース、先頭と末尾の改行が含まれる場合がありますが、それ以外の場合は上記の間隔規則に準拠する必要があります。
- 出力は、テキストアート、画像(必要に応じて追加する他の形式)です。
- 画像の場合、ツリーのノードが十分に間隔を空けており、ツリーの同じ高さのノードが画像の同じ高さにあることを確認してください。
- これはコードゴルフです。最小バイト数(または同等)が勝ちます。
このアイデアを考えてくれたStewie Griffinに感謝します。また、仕様の書き直しに協力してくれたPeter Taylor、Martin Ender、Mego、EᴀsᴛᴇʀʟʏIʀᴋに感謝します。いつものように、提案や修正は大歓迎です。幸運と良いゴルフ!
その他のテストケース:
2
4
/ \
2 2
20
/ \
4 5
/ \
2 2
323
/ \
17 19
362880
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
576 630
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
24 24 21 30
/ \ / \ / \ / \
/ \ / \ / \ / \
4 6 4 6 3 7 5 6
/ \ / \ / \ / \ / \
2 2 2 3 2 2 2 3 2 3
1286250
/ \
/ \
/ \
/ \
/ \
1050 1225
/ \ / \
/ \ / \
/ \ / \
30 35 35 35
/ \ / \ / \ / \
5 6 5 7 5 7 5 7
/ \
2 3

