4
数字0、3、7のないビットxorで数値を分解します
チャレンジ 正の10進数をとる関数またはプログラムを作成し、それをAと呼び、次のような2つの正の数値BとCを出力します。 A == B bitxor C BおよびCには、10進表現に数字0、3、または7を含めることはできません。 例 >>> decompose(3) 1, 2 >>> decompose(7) 1, 6 >>> decompose(718) 121, 695 >>> decompose(99997) 2, 99999 >>> decompose(4294967296) 4294968218, 922 >>> decompose(5296080632396965608312971217160142474083606142654386510789497504098664630388377556711796340247136376) 6291484486961499292662848846261496489294168969458648464915998254691295448225881546425551225669515922, 1191982455588299219648819556299554251659915414942295896926425126251962564256469862862114191986258666 分解は一意ではないため、関数/プログラムはこれらの例とまったく同じ結果を出力する必要はありません。 非常に詳細なルール 提出は完全な機能またはプログラムの形であるべきです。importステートメントは最終スコアにカウントされます。 入力Aには常に少なくとも0、3、または7の数字が含まれると仮定できます。 分解が常に存在すると仮定できます。 BigIntは、言語の標準ライブラリの一部であるか、言語のde jureパッケージマネージャーを介してインストールできる場合に使用できます。 関数は高速でなければなりません。100桁の数字を入力した場合、最新のコンピューターで実行するのに20秒以内、10桁の数字を入力した場合、2秒以内です。 関数/プログラムは、少なくとも100桁までの入力をサポートする必要があります。 関数/プログラムがN <100桁までの整数のみをサポートできる場合、最終スコアに対して+ 10×(100 / N-1)バイトのペナルティがあります。これは、インポートが冗長である場合でも、ゴルファーがより広い範囲の数字をサポートすることを奨励するためです。 入出力が明確に10進表記である限り、入出力の表示に制限はありません。 組み込み整数型では不十分な場合、関数は文字列/ BigIntsを入出力できます。 …