도전 설명
모든 양의 정수에 n
대해, 그 형태를 갖는 111...10...000
수, n
즉 모든로 시작하고 모든로 1
끝나는 10 진수 가 존재한다 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
적어도 하나 이상을 포함해야한다고 생각합니다 0
. 그렇지 않으면 0
모든 입력에 대한 솔루션입니다. (그러나 이것을 명확히하는 것이 좋을 것입니다.)
1
있으면 작동합니다.