檢查一個數字能否表示為 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP