다음 단계에 따라 지수를 천천히 계산해야합니다.
두 개의 입력 (이 예에서는 4와 8)이 주어지면 방정식을 비트 단위로 계산하여 지수를 계산해야합니다. 당신은 할 것 4^8
, 더 큰 기본 값 (4)와 작은 지수 (8)이있다. 더 많은 지수와 나눗셈을 사용 하여이 작업을 수행 할 수 있습니다. 지수를 값 X로 나누고 (제공된 X 는 지수의 제수) 제공된 기본 값 ( B )을로 만들 수 B^X
있습니다. 예를 들어 다음을 수행 할 수 있습니다.
4^8 = (4 ^ 2)^(8 / 2) = 16^4
나는 교체 한 X를 이전 방정식 2.
다음 16^4
과 X = 2
같이 다시 '간단 화'할 수 있습니다 .
16^4 = (16 ^ 2)^(4 / 2) = 256^2
그리고 마지막으로 숫자를 다시 계산하십시오 X = 2
.
256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536
따라서,
4^8 = 16^4 = 256^2 = 65536
이것은 당신이 제공 해야하는 출력입니다. 출력 구분 기호는 약간 융통성이 있습니다. 예를 들어 수식 대신 개행 또는 공백으로 수식을 구분할 수 있습니다 =
. 또는 목록에 넣을 수도 있지만 숫자 나 ^
문자를 구분 기호로 사용해서는 안됩니다 .
Martin Ender가 지적했듯이이 ^
또한 유연합니다. 예를 들어, 출력에서 [A, B]
또는 A**B
대신에 사용할 수 있습니다 A^B
.
X 는 소수 일 수 있습니다. 즉, 해를 X = 8
바로 잡기 위해 사용할 수 없으며 , X 의 값은 두 번째 입력 (지수)의 소수 일뿐입니다.
예 :
(input) -> (output)
4^8 -> 4^8=16^4=256^2=65536
5^11 -> 5^11=48828125
2^15 -> 2^15=32^3=32768 (2^15=8^5=32768 is also a valid output)
입력 형식도 유연하다는 점을 명심하십시오 (예를 들어 A \n B
또는 A B
대신 사용할 수 있습니다 A^B
. 분명히 두 개의 인수를 사용하는 함수를 작성하면 문제가되지 않습니다.
두 번째 예에서는 11
소수 이므로 더 이상 계산할 수 없으며 더 이상 단계를 수행 할 수 없습니다.
이를 해결하기 위해 프로그램이나 함수를 작성할 수 있으며 각각 값을 인쇄하거나 리턴 할 수 있습니다.
이것이 code-golf 이므로 가장 짧은 코드가 승리합니다!
x^1
있습니까?
32^3
그리고8^15
512도 아닙니다.