Strong Prime คือ จำนวนเฉพาะที่มากกว่าค่าเฉลี่ยของจำนวนเฉพาะที่อยู่ติดกันทั้งสองข้าง
เช่น Input num = 37 Output True เพราะ Prime ใกล้เคียงคือ 31 และ 41 ค่าเฉลี่ย = 36 และ 37 > 36
ขั้นตอนแก้:
- ถ้า num ไม่ใช่ Prime หรือ num == 2 Return False
- last = num - 1, next = num + 1
- While next ไม่ใช่ Prime: next += 1
- While last ไม่ใช่ Prime: last -= 1
- avg = (last + next) / 2
- ถ้า num > avg Return True
- Return False
ตัวอย่างโค้ด
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))
Input
37
Output
True