Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 수학의 힘


숫자의 거듭제곱은 숫자에 자신을 곱한 횟수입니다. 지수 또는 지수라고도 합니다.

a의 b 거듭제곱은 a에 b를 곱한 값입니다. 7의 2승은 7 2 입니다. 7제곱이라고도 하는 값은 49입니다.

몇 가지 일반적인 거듭제곱 값은 -

  • 0의 거듭제곱은 1입니다.

  • 1의 거듭제곱 숫자는 동일한 숫자를 제공하며, 한 번 곱한 값은 동일합니다.

  • 음의 거듭제곱에 대한 숫자는 n 곱하기 나눗셈입니다. 예: -3 =1/a 3 또는 (1/a)*(1/a)*(1/a)

이제 힘의 개념을 기반으로 프로그래밍을 해보자.

이 문제에서 우리는 두 개의 숫자 N과 그리고 N이 어떤 수의 거듭제곱과 같은지 여부를 찾아야 합니다.

문제를 이해하기 위해 예를 들어 보겠습니다.

입력 - N =64, a =2

출력 − 예

간단하고 효과적인 솔루션은 숫자를 재귀적으로 나누는 것입니다. 숫자를 끝까지 완벽하게 나누면 TRUE, 그렇지 않으면 FALSE를 반환합니다.

예시

솔루션 구현을 보여주는 프로그램

#include <iostream>
using namespace std;
bool isAPowerNumber(int x, long int y) {
   if (x == 1)
      return (y == 1);
   long int power = 1;
   while (power < y)
      power *= x;
   return (power == y);
}
int main() {
   int N = 625 , a = 5;
   if(isAPowerNumber(a, N))
      cout<<N<<" is a power of "<<a;
   else
      cout<<N<<" is not power of "<<a;
   return 0;
}

출력

625 is a power of 5