ในปัญหานี้ เราได้รับจำนวนเต็ม N หน้าที่ของเราคือ ค้นหาว่าจำนวนเต็มที่กำหนดให้เป็นยกกำลัง 3 หรือไม่ .
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input : N = 729 Output : Yes
คำอธิบาย −
36 = 719
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาคือโดยการตรวจสอบค่าที่เป็นกำลัง 3 เราจะตรวจสอบว่าตัวเลขที่ระบุ N หาร 1162261467 หรือไม่ (3 19 ). หากเป็นยกกำลัง 3 เศษที่เหลือเป็น 0 คือ N จะหารมัน หากไม่เป็นเช่นนั้น แสดงว่าจำนวนนั้นไม่ใช่ยกกำลัง 3
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#include <iostream> using namespace std; bool isPowerOf3(int n){ if (n <= 0) return false; return 1162261467 % n == 0; } int main(){ int n = 27; if (isPowerOf3(n)) cout<<"The number is a power of 3"; else cout<<"The number is not a power of 3"; return 0; }
ผลลัพธ์
The number is a power of 3