เมื่อต้องการตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่โดยใช้ Recursion กำหนดเมธอดและใช้เงื่อนไข 'while'
Recursion คำนวณผลลัพธ์ของส่วนเล็กๆ ของปัญหาใหญ่ และรวมส่วนเหล่านี้เพื่อให้คำตอบของปัญหาใหญ่
ตัวอย่าง
def check_prime(my_num, my_val=None):
if my_val is None:
my_val = my_num - 1
while my_val >= 2:
if my_num % my_val == 0:
print("The number is not a prime number")
return False
else:
return check_prime(my_num, my_val - 1)
else:
print("The number is a prime number")
return True
my_num = int(input("Enter the number that you wish to examine : "))
print("The number is being checked...")
check_prime(my_num)
ผลลัพธ์
Enter the number that you wish to examine : 46 The number is being checked... The number is not a prime number
คำอธิบาย
- กำหนดเมธอด 'check_prime' รับตัวเลขและค่าที่กำหนดเป็น None เป็นพารามิเตอร์
- หากตัวแปรเป็น None กำหนดตัวแปรเป็นตัวเลขลบ 1
- หากค่าตัวแปรมากกว่าหรือเท่ากับ 2 หารตัวเลขด้วยค่า และเปรียบเทียบเศษกับ 0
- หากเศษเป็น 0 ถือว่าไม่ใช่จำนวนเฉพาะ
- มิฉะนั้น เรียกเมธอดซ้ำส่งตัวเลขและค่าลบ 1
- นอกฟังก์ชัน ผู้ใช้ป้อนตัวเลขที่ต้องการตรวจสอบ
- ตรวจสอบตัวเลขโดยเรียกฟังก์ชันส่งค่านี้เป็นพารามิเตอร์
- แสดงเอาต์พุทที่เกี่ยวข้องบนคอนโซล