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

Python - ตรวจสอบว่าเลขจำนวนเต็มเป็นกำลังของ 3 หรือไม่

เพื่อตรวจสอบว่าจำนวนเต็ม 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