เพื่อตรวจสอบว่าจำนวนเต็ม n เป็นกำลังของ 3 (Power of 3) สามารถใช้การหารเอาเศษ (Modulus) และการหารเอาส่วนเต็ม (Floor Division) โดยการหารซ้ำด้วย 3 จนกว่าจะเหลือ 1 หากในระหว่างทางมีเศษเหลือ จะคืนค่า False
ตัวอย่างโค้ด
def check_power_of_3(my_val):
if my_val == 0:
return False
while my_val != 1:
if my_val % 3 != 0:
return False
my_val = my_val // 3
return True
my_num = 81
print("The number to be checked is : ")
print(my_num)
if check_power_of_3(my_num):
print(my_num, 'is a power of 3..')
else:
print(my_num, 'is not a power of 3..')
ผลลัพธ์
The number to be checked is : 81
81 is a power of 3..
คำอธิบาย
- ฟังก์ชัน
check_power_of_3รับพารามิเตอร์เป็นจำนวนเต็ม - ถ้าค่าเป็น 0 คืน
Falseทันที (0 ไม่ใช่กำลังของ 3) - ใช้ลูป
whileหารด้วย 3 ซ้ำๆ จนค่าเหลือ 1 - หากพบเศษจากการหารด้วย 3 ไม่ใช่ 0 คืน
False - เมื่อลูปจบครบ (ค่าเหลือ 1) คืน
True