मान लीजिए हमारे पास एक संख्या n है। हमें यह जांचना है कि n एक स्ट्रॉन्ग प्राइम है या नहीं। जैसा कि हम जानते हैं, एक संख्या को स्ट्रॉन्ग प्राइम कहा जाता है जब यह एक अभाज्य संख्या होती है जो निकटतम अभाज्य संख्याओं के औसत से अधिक होती है।
तो, यदि इनपुट num = 37 है, तो आउटपुट True होगा क्योंकि निकटतम अभाज्य संख्याएं 31 और 41 हैं, औसत (31+41)/2 = 36 है। और 37 > 36।
हल करने के चरण
- यदि num अभाज्य नहीं है या num 2 है, तो:
- False लौटाएं
- last := num - 1, next := num + 1
- जब तक next अभाज्य नहीं है, तब तक:
- next := next + 1
- जब तक last अभाज्य नहीं है, तब तक:
- last := last - 1
- avg := (last + next) / 2
- यदि num > avg, तो:
- True लौटाएं
- 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))
इनपुट
37
आउटपुट
True