เมื่อจำเป็นต้องค้นหาว่าตัวเลขเป็นจำนวนเฉพาะหรือไม่ใช้เทคนิคการเรียกซ้ำ จะมีการกำหนดวิธีการ และใช้เงื่อนไข "ในขณะที่"
การเรียกซ้ำจะคำนวณเอาต์พุตของบิตขนาดเล็กของปัญหาที่ใหญ่กว่า และรวมบิตเหล่านี้เข้าด้วยกันเพื่อแก้ปัญหาที่ใหญ่กว่า
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -
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 ตัวแปรจะถูกกำหนดให้กับตัวเลขที่ลดลง 1
- ถ้าค่าของตัวแปรมากกว่า 2 ตัวเลขจะถูกหารด้วยค่า และเศษที่เหลือจะถูกนำมาเปรียบเทียบกับ 0
- หากเศษเหลือเป็น 0 จะถือเป็นจำนวนที่ไม่ใช่จำนวนเฉพาะ
- ไม่เช่นนั้น เมธอดจะถูกเรียกอีกครั้งโดยส่งตัวเลข และค่าลดลง 1
- นอกฟังก์ชัน ผู้ใช้จะถูกขอให้ป้อนหมายเลขที่ต้องตรวจสอบ
- มีการตรวจสอบตัวเลขโดยการเรียกใช้ฟังก์ชันและส่งค่านี้เป็นพารามิเตอร์
- ผลลัพธ์ที่เกี่ยวข้องจะแสดงบนคอนโซล