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

ตรวจสอบว่าจำนวนเฉพาะสามารถแสดงเป็นผลรวมของสองจำนวนเฉพาะใน Python ได้หรือไม่


สมมติว่าเรามีจำนวนเฉพาะ n เราต้องตรวจสอบว่าเราสามารถแสดง n เป็น x + y ได้หรือไม่ โดยที่ x และ y เป็นจำนวนเฉพาะสองตัว

ดังนั้นหากอินพุตเป็น n =19 เอาต์พุตจะเป็น True ตามที่เราสามารถแสดงได้เช่น 19 =17 + 2

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดฟังก์ชัน isPrime() นี่จะใช้ตัวเลข
  • ถ้าเป็นตัวเลข <=1 แล้ว
    • คืนค่าเท็จ
  • ถ้าตัวเลขเหมือนกับ 2 แล้ว
    • คืนค่า True
  • ถ้าเป็นเลขคู่
    • คืนค่าเท็จ
  • สำหรับฉันในช่วง 3 ถึงส่วนของจำนวนเต็ม ((รากที่สองของตัวเลข) + 1) เพิ่มขึ้น 2 ทำ
    • ถ้าตัวเลขหารด้วย 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