3
64ビット整数の因数分解
書き込みゴルフ STDOUT上の末尾の改行に続く(最後の改行が続く)標準入力から整数を読み取り、出力の素因数は改行で区切らアセンブリプログラムを、。 素因数は特定の順序である必要はありません。1素因数ではありません。 あなたのゴルフ(組み立て後)バイナリが8192バイトに収まらなければなりません。 プログラムは、それぞれ次の入力のいずれかを使用して10回実行することによりスコアリングされます。 8831269065180497 2843901546547359024 6111061272747645669 11554045868611683619 6764921230558061729 16870180535862877896 3778974635503891117 204667546124958269 16927447722109721827 9929766466606501253 これらの数字は、難易度の観点から大まかに分類されています。最初のものは、試行分割によって簡単に解決できるはずです。 この数字のセットに対する最適化は、質問の精神に反します。数字のセットはいつでも変更できます。プログラムは、これらだけでなく、任意の正の64ビット入力番号に対して機能する必要があります。 スコアは、上記の数値を因数分解するために使用されるCPUサイクルの合計です。 GOLFは非常に新しいため、ここにいくつかのポインターを含めます。あなたは読むべきGOLFのすべての命令およびサイクルコストと仕様を。Githubリポジトリのサンプルプログラムにあります。特に、入力/出力を示す階乗のサンプルプログラムを見てください。 を実行して、プログラムをバイナリにコンパイルしますpython3 assemble.py your_source.golf。次に、を使用してプログラムを実行するとpython3 golf.py your_source.bin、サイクルカウントも出力されます。-dフラグを使用--helpして、プログラムの終了時にレジスタの内容の値を確認します- すべてのフラグを確認するために使用します。