때때로, 내가 숫자 앞에 어떤 숫자가 나오는지 알아 내려고 할 때 ¹, 잠시 후에 생각보다 쉽다는 것을 깨달았습니다. 가지고 2156
예를 들면 : 결국 모두 나에게 발생 21
하고 56
의 배수는 7
, 그래서 확실히 2156 = 21 x 100 + 56
도의 배수입니다 7
.
당신의 임무는 이러한 종류의 우연의 일치로 인해 더 쉽게 숫자를 식별하는 코드를 작성하는 것입니다.
더 정확하게:
양수 얻어 프로그램이나 함수 작성 n
입력으로, 그리고 제수에게 존재하는 경우 truthy 값을 반환 d
(이상 1
등) n
의 배수이고, 각각의 두 개의 양의 정수를 산출하기 위해 두 다진 수 d
; 그렇지 않으면 거짓 값을 반환합니다.
- "두 개로 나"다 "는 당신이 생각하는 것을 의미합니다 :
n
어떤 점에서 앞면 반과 뒷면 반으로 나누어 져서 두 개의 다른 10 진 정수를 만들어냅니다. 두 번째 정수 (이 양의 정수이어야하지만 참고 분할 있도록 앞에 0이있는 경우 괜찮아1230
으로123
하고0
유효하지 않습니다). - 진실되고 잘못된 값은 입력에 따라 달라질 수 있습니다. 예를 들어, 0이 아닌 정수가 선택한 언어에서 진실한 경우, 제수
d
또는 "n
또는n
그 문제 "중 하나 를 반환 해도됩니다. - 예를 들어, 세트에 두 자리 이상의 숫자가
{2, 4, 6, 8}
있는 짝수는 정확한 값을 산출합니다. 첫 번째 짝수 자리 이후에 나누면됩니다. 또한 예를 들어 소수n
는 모든 한 자리 숫자와 마찬가지로 잘못된 값을 생성합니다. - 소수의 제수를 고려하면 충분합니다
d
. - 입력이 유효하다고 가정 할 수 있습니다 (즉, 양의 정수).
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다. 그러나 모든 언어의 솔루션을 환영하므로 전체적으로 가장 짧은 코드뿐만 아니라 각 언어의 가장 짧은 코드를 위해 노력할 수 있습니다.
테스트 사례
(진실하거나 허위 인 값만 출력하면됩니다. 아래 주석은 설명을위한 것입니다.) 진지한 값을 산출하는 일부 입력은 다음과 같습니다.
39 (3 divides both 3 and 9)
64 (2 divides both 6 and 4)
497 (7 divides both 49 and 7)
990 (splitting into 99 and 0 is invalid; but 9 divides both 9 and 90)
2233 (11 divides both 22 and 33)
9156 (3 divides both 9 and 156; or, 7 divides both 91 and 56)
11791 (13 divides both 117 and 91)
91015 (5 divides both 910 and 15)
1912496621 (23 divides both 1912496 and 621; some splittings are multiples of 7 as well)
9372679892 (2473 divides both 937267 and 9892; some splittings are multiples of 2 as well)
허위 값을 산출하는 일부 입력은 다음과 같습니다.
52
61
130 (note that 13 and 0 is not a valid splitting)
691
899
2397
9029
26315
77300 (neither 7730 and 0 nor 773 and 00 are valid splittings)
2242593803
¹ 네, 이거 정말 해요