Опис виклику
Для кожного натурального цілого числа nіснує число, яке має вигляд, 111...10...000що ділиться, nтобто десятковим числом, яке починається з усіх 1's і закінчується з 0' 's' '. Це дуже просто довести: якщо ми візьмемо набір 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і хоча б одне 0, інакше 0це рішення для будь-якого введення. (Було б добре уточнити це.)
1слід працювати.