สมมติว่าเรามีจำนวนเฉพาะ n เราต้องตรวจสอบว่าเราสามารถแสดง n เป็น x + y ได้หรือไม่ โดยที่ x และ y เป็นจำนวนเฉพาะสองตัว
ดังนั้นหากอินพุตเป็น n =19 เอาต์พุตจะเป็น True ตามที่เราสามารถแสดงได้เช่น 19 =17 + 2
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- กำหนดฟังก์ชัน isPrime() นี่จะใช้ตัวเลข
- ถ้าเป็นตัวเลข <=1 แล้ว
- คืนค่าเท็จ
- ถ้าตัวเลขเหมือนกับ 2 แล้ว
- คืนค่า True
- ถ้าเป็นเลขคู่
- คืนค่าเท็จ
- สำหรับฉันในช่วง 3 ถึงส่วนของจำนวนเต็ม ((รากที่สองของตัวเลข) + 1) เพิ่มขึ้น 2 ทำ
- ถ้าตัวเลขหารด้วย i ลงตัว
- คืนค่าเท็จ
- ถ้าตัวเลขหารด้วย i ลงตัว
- คืนค่า True
- จากวิธีหลัก ให้ทำดังนี้ -
- ถ้า isPrime(number) และ isPrime(number - 2) ทั้งคู่เป็นจริง ดังนั้น
- คืนค่า True
- มิฉะนั้น
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
from math import sqrt def isPrime(number): if number <= 1: return False if number == 2: return True if number % 2 == 0: return False for i in range(3, int(sqrt(number))+1, 2): if number%i == 0: return False return True def solve(number): if isPrime(number) and isPrime(number - 2): return True else: return False n = 19 print(solve(n))
อินพุต
19
ผลลัพธ์
True