Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 숫자를 ^b로 표현할 수 있는지 확인

<시간/>

숫자 n이 있다고 가정합니다. ^b로 표현할 수 있는지 확인해야 합니다.

따라서 입력이 125와 같으면 출력은 125 =5^3이므로 True가 됩니다. 따라서 a =5 및 b =3

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • num이 1과 같으면 다음과 같습니다.
    • 참을 반환
  • i를 초기화하려면:=2, i * i <=num일 때 업데이트(i를 1만큼 증가), 수행:
    • val :=log(num) / log(i)
    • val - val의 정수 부분이 거의 0인 경우:
      • 참을 반환
  • 거짓 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include<iostream> #include<cmath> using namespace std; bool solve(int num) {    if (num == 1)       return true;      for (int i = 2; i * i <= num; i++) {       double val = log(num) / log(i);       if ((val - (int)val) < 0.00000001)          return true;    }        return false; }   int main() {    int n = 125;    cout << solve(n); }

입력

125

출력

1