Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าตัวเลขสามารถแสดงเป็น a^b ใน Python . ได้หรือไม่


สมมติว่าเรามีตัวเลข n ต้องเช็คก่อนว่าจะทำออกมาเป็น a^b ได้หรือไม่

ดังนั้น หากอินพุตเท่ากับ 125 เอาต์พุตจะเป็น True เป็น 125 =5^3 ดังนั้น 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