ในปัญหานี้ เราได้รับจำนวนเต็ม 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