สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่า n เป็น Wagstaff prime หรือไม่ ดังที่เราทราบ Wagstaff prime เป็นจำนวนเฉพาะที่อยู่ในรูปแบบต่อไปนี้
โดยที่ q เป็นจำนวนเฉพาะคี่
ดังนั้นหากอินพุตเป็น n =683 ผลลัพธ์จะเป็น True n สามารถแสดงเป็น
ดังนั้นที่นี่ 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