チャレンジ:
基数10の数字が与えられます。10から2までのカウントダウンの各ベースに対して:
- 元の入力番号を基数10の文字列として取得し、基数に対して無効な数字の数字を削除します。
- そのベースの結果の数値文字列を解釈します。これにより1または0が得られた場合、プロセス全体を終了します。
- 最大の素因数を10進数として出力または印刷します。
出力は、最大の素因数の配列にすることができます。
サンプルケース:
入力:
987654321
出力:
379721
10593529
1091
179
1493
293
19
7
代わりに:
[379721,10593529,1091,179,1493,293,19,7]
これは、987654321の最大素因数を印刷87654321 9 = 42374116 10、7654321 8 = 2054353 10、及びそれが1に達するまでに2止まります。
2
私はそのプロセスについては不明です。おそらく例からそれを理解することができますが、これは必要ではないので明確な指示が必要です。そこで、より低い基数に変換し、無効な数字を削除してから、最大の素因数を出力しますか?この要素をどのベースに印刷しますか?次に、最大の素因数と底の素因数で同じプロセスを実行しますか?または、因数分解した数でそれを行いますか?10または9から始めますか?
—
xnor
サイトへようこそ!
—
DJMcMayhem
課題をより明確にするために書き直しました。これがあなたの意図したものであることを願っています。そうでない場合は、お気軽に変更してください。
—
-xnor
主要な操作に追加される最大の素因数ステップは、ベース変換です。多くの言語は、素因数分解を組み込みで直接実行しますが、残りは基本的に2番目の別の課題を実行する必要があります。ベース変換もビルトインまたはバストです。操作がビルトインとして行われる場合、それらはゴルフのためのよく踏まれた地面であり、実際に因数分解とベース変換がそうであると期待します。それでも、最初の挑戦には良いが、次回のために心に留めておくべきこと。
—
-xnor
これがGoogle Code Jamに触発された可能性はありますか?
—
メゴ