チャレンジの説明
すべての正の整数n
には、すべてので始まりすべてで終わる10進数などで111...10...000
割り切れる形式の数値が存在します。これは証明するのが非常に簡単です:(すべての)の形で異なる数のセットをとる場合、少なくとも2つは(鳩の巣の原理による)除算後に同じ剰余を与えます。これらの2つの数値の差は、割り切れ、希望する形式になります。あなたの目的は、この番号を見つけるプログラムを書くことです。n
1
0
n+1
111...111
1
n
n
入力説明
正の整数。
出力の説明
のようなp
形式の数。複数ある場合は、それらのいずれかを表示します(最小のものである必要はありません)。111...10...000
p ≡ 0 (mod n)
ノート
プログラムは妥当な時間内に答えを出さなければなりません。つまり、総当たり攻撃は許可されていません。
p = 0
while (p != 11..10.00 and p % n != 0)
p++
どちらでもありません:
do
p = random_int()
while (p != 11..10.00 and p % n != 0)
の形式で数字を繰り返す11..10..00
ことは許可されます。
プログラムは、任意の大きさの入力を処理する必要はありません-上限は、言語の上限になります。
サンプル出力
2: 10
3: 1110
12: 11100
49: 1111111111111111111111111111111111111111110
102: 1111111111111111111111111111111111111111111111110
1
1と少なくとも0
そうでない場合、0
任意の入力のためのソリューションです。(ただし、これを明確にするとよいでしょう。)
1
です。