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

ตรวจสอบว่า N เป็น Strong Prime ใน Python . หรือไม่


สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่า n เป็นจำนวนเฉพาะที่แข็งแกร่งหรือไม่ อย่างที่เราทราบจำนวนเฉพาะที่บอกว่าเป็นจำนวนเฉพาะที่แข็งแกร่งเมื่อเป็นจำนวนเฉพาะที่มากกว่าค่าเฉลี่ยของจำนวนเฉพาะที่ใกล้เคียงที่สุด

ดังนั้น หากอินพุตมีค่าเท่ากับ num =37 ผลลัพธ์จะเป็น True เนื่องจากจำนวนเฉพาะที่ใกล้เคียงที่สุดคือ 31 และ 41 ค่าเฉลี่ยคือ (31+41)/2 =36 และ 37> 36

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

  • ถ้า num ไม่ใช่จำนวนเฉพาะหรือ num เป็น 2 แล้ว
    • คืนค่าเท็จ
  • สุดท้าย :=num - 1 ถัดไป :=num + 1
  • ในขณะที่ถัดไปไม่ใช่จำนวนเฉพาะ ให้ทำ
    • ถัดไป :=ถัดไป + 1
  • ในขณะที่อันสุดท้ายไม่ใช่จำนวนเฉพาะ ให้ทำ
    • สุดท้าย :=สุดท้าย - 1
  • เฉลี่ย :=(สุดท้าย + ถัดไป) / 2
  • ถ้า num> เฉลี่ย แล้ว
    • คืนค่า True
  • คืนค่าเท็จ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def isPrime(num):
   if num > 1:
      for i in range(2,num):
         if num % i == 0:
            return False
      return True
   return False
def solve(num):
   if isPrime(num) == False or num == 2:
      return False
   last = num - 1
   next = num + 1
   while isPrime(next) == False:
      next += 1
   while isPrime(last) == False:
      last -= 1
   avg = (last + next) / 2
   if num > avg:
      return True
   return False
num = 37
print(solve(num))

อินพุต

37

ผลลัพธ์

True