많은 프로그래밍 언어는 정수의 이진수 (base-2) 숫자를 조작하는 연산자를 제공합니다. 이러한 연산자를 다른 기반으로 일반화하는 방법은 다음과 같습니다.
하자 X 및 Y는 베이스 단 자리 숫자 일 B . 단항 연산자 정의 ~와 이항 연산자 &, |그리고 ^있도록를 :
- ~ x = (B-1)-x
- x & y = 최소 (x, y)
- x | y = 최대 (x, y)
- x ^ y = (x & ~ y) | (y & ~ x)
B = 2 인 경우 익숙한 비트 NOT, AND, OR 및 XOR 연산자를 얻습니다.
B = 10 인 경우“소수 XOR”테이블을 얻습니다.
^ │ 0 1 2 3 4 5 6 7 8 9
──┼────────────────────
0 │ 0 1 2 3 4 5 6 7 8 9
1 │ 1 1 2 3 4 5 6 7 8 8
2 │ 2 2 2 3 4 5 6 7 7 7
3 │ 3 3 3 3 4 5 6 6 6 6
4 │ 4 4 4 4 4 5 5 5 5 5
5 │ 5 5 5 5 5 4 4 4 4 4
6 │ 6 6 6 6 5 4 3 3 3 3
7 │ 7 7 7 6 5 4 3 2 2 2
8 │ 8 8 7 6 5 4 3 2 1 1
9 │ 9 8 7 6 5 4 3 2 1 0
여러 자리 숫자의 경우 한 자리 연산자를 한 자리 씩 적용하십시오. 예를 들어, 12345 ^ 24680 = 24655는 다음과 같습니다.
- 1 ^ 2 = 2
- 2 ^ 4 = 4
- 3 ^ 6 = 6
- 4 ^ 8 = 5
- 5 ^ 0 = 5
피연산자가 길이가 다른 경우 짧은 값을 앞에 오는 0으로 채 웁니다.
도전
가능한 한 적은 바이트로, 두 개의 정수를 입력하고 (0에서 999,999,999 사이의 것으로 간주 될 수있는) 프로그램 또는 함수를 작성하고 위에서 정의한 두 숫자의 "소수 XOR"을 출력하십시오.
테스트 사례
- 12345, 24680 → 24655
- 12345, 6789 → 16654
- 2019, 5779 → 5770
- 0, 999999999 → 999999999
- 0, 0 → 0
09의 입력을 수용 결과 90, 99?
A^B^B=A
a^b=b^a및 a^b^b=a홀수 주요 제수와 기지에 대한이