인도의 전설은 체스 게임의 발명가에 대한 이야기를 들려줍니다. 체스 게임의 발명가는 그의 게임으로 인도 황제에게 너무 많은 감동을 주어 요청한 것에 대해 보상받을 것입니다.
남자는 쌀로 돈을 받고 싶다고 말했다. 그는 체스 판의 첫 번째 정사각형, 두 번째는 두 번째, 네 번째는 세 번째, 여덟 번째는 네 번째 사각형을 위해 쌀 한 곡물을 64 번째 사각형까지 원했습니다.
황제는 그 사람이 그런 작은 보상을 요구 한 것에 놀랐지 만, 수학자들이 계산을 시작하면서 결국 그의 지방 중 하나를 잃게되었습니다.
태스크
가상 체스 판의 측면 길이 (기본 체스 판에서 8)와 사각형 사이의 승수 (전설에서 2)를 고려하여 황제가 남자에게 지불해야하는 쌀알의 수를 계산하십시오.
노트
변의 길이는 항상 양의 정수입니다. 승수는 모든 종류의 합리적인 수일 수 있습니다.
선택한 언어가 매우 큰 숫자를 표시 할 수없는 경우 프로그램에서 더 작은 입력을 올바르게 처리 할 수 있다면 괜찮습니다.
또한 선택한 언어가 더 큰 값 (지수 표기법으로)을 반올림하는 경우 해당 값이 대략 정확하면 괜찮습니다.
테스트 케이스
Input (side length, multiplier) => Output
8, 2 => 18446744073709551615
3, 6 => 2015539
7, 1.5 => 850161998.2854
5, -3 => 211822152361
256, 1 => 65536
2, 2 => 15
2, -2 => -5
명시 적 수식에 유의하십시오
result = (multiplier ^ (side ^ 2) - 1) / (multiplier - 1)
에 잘못 수행 multiplier = 1
등
1 ^ (side ^ 2) - 1 = 0
1 - 1 = 0
0 / 0 != side ^ 2 (as it should be)
채점
이것은 코드 골프입니다. 바이트 단위의 최단 답변이 이깁니다.
If your language of choose can't display too large numbers, it's ok as long as your program can correctly process smaller inputs
조심스럽게, 그것은 과거에 문제를 일으켰습니다. meta.codegolf.stackexchange.com/a/8245/31716