檢查一個數字能否表示為 a^b (Python)


假設我們有一個數字 n。我們需要檢查是否可以將其表示為 a^b 的形式。

例如,如果輸入是 125,則輸出為 True,因為 125 = 5^3,所以 a = 5,b = 3。

為了解決這個問題,我們將遵循以下步驟:

  • 如果 num 等於 1,則
    • 返回 true
  • 從 i = 2 開始,當 i * i <= num 時,遞增 i,執行以下操作:
    • val := log(num) / log(i)
    • 如果 val 減去 val 的整數部分近似為 0,則
      • 返回 true
  • 返回 true

讓我們來看下面的實現,以便更好地理解:

示例

線上演示

#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

更新於:2021年1月16日

316 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.