2014-05-23 5 views
-4

숫자가 n이고 형식을 k * 2^n-1로 바꿀 수있는 방법이 필요합니다. n은 100000 + 디지트 길이의 매우 큰 숫자가 될 것입니다. 그래서이 형식으로 가져 오려고합니다. n은 항상 홀수, 정수 및 실수입니다.숫자를 특정 형식으로 가져 오는 방법은 무엇입니까?

가능하지 않은 경우 k * b^n-1 형식으로 만들 수 있습니까? 나는 2의 기지를 선호 할 것이지만, 어떤 기지도 작동 할 것이다.

+1

sshashank124 @ codeforme 도메인 : 판매를위한 –

+0

내가 몇 가지 살펴 보았다,하지만 그들은 단지 2^N + K 형 작동,하지만 난에 그것을 얻을 필요 ak * 2^n-1 형식. – wcb98

+0

* "숫자 n [...] 형식으로 k * 2^n-1"* - 다른 n입니까? 귀하의 숫자는 정수입니까, 아니면 실수입니까? – poke

답변

1

홀수 인 것은 m != 0m != 1k * 2^m - 1 형식을 사용하여 n을 나타내는 데 충분한 기준이 아닙니다. 짝수는 2 = 2^1 그 자체를 제외하고는 기수 2가있는 지수의 곱으로 항상 표현 될 수 없기 때문입니다.

예를 들어 숫자 n = 11을 예로 들자. 형식을 맞추려면 1을 더해야하기 때문에 k * 2^m 형식으로 n’ = 12을 표시하려고합니다. n’의 인수 분해는 n’ = 2 * 2 * 3 = 2^2 * 3^1이므로, 거기에 2가 아닌 요소가 있습니다. 따라서 하나의 k * 2^m은 숫자 12를 나타낼 수 없습니다.

m의 가능한 값은 0과 1입니다. 사람들은 모든 홀수 정수 나타낼 수

# m = 0 
(n + 1) * 2^0 - 1 

# m = 1 
((n + 1)/2) * 2^1 - 1 
+0

아니요, 191은 3 * 2^6 -1 및 기타 많은 예제로 나타낼 수 있습니다. 가능한 한 가장 작은 k 값으로 이들을 표현하는 방법을 찾아야합니다. – wcb98

+0

물론, 작동하는 숫자가 있지만 모든 홀수에 대해 작동하지는 않습니다. – poke

관련 문제