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

ตรวจสอบว่าตัวเลขที่ระบุเป็น Wagstaff prime หรือไม่ใน Python


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

ตรวจสอบว่าตัวเลขที่ระบุเป็น Wagstaff prime หรือไม่ใน Python

โดยที่ q เป็นจำนวนเฉพาะคี่

ดังนั้นหากอินพุตเป็น n =683 ผลลัพธ์จะเป็น True n สามารถแสดงเป็น

ตรวจสอบว่าตัวเลขที่ระบุเป็น Wagstaff prime หรือไม่ใน Python

ดังนั้นที่นี่ q =11 และ q เป็นจำนวนเฉพาะคี่

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

  • ถ้า num เป็นจำนวนเฉพาะ และ (num*3 - 1) เป็นจำนวนเฉพาะด้วย ดังนั้น
    • คืนค่า True
  • คืนค่าเท็จ

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

โค้ดตัวอย่าง

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
   
def power_of_two(num):
   return num and not(num & (num - 1))

def solve(num) : 
   if isPrime(num) and power_of_two(num * 3-1): 
      return True
   return False

n = 683
print(solve(n))

อินพุต

683

ผลลัพธ์

True