मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि n एक ओर संख्या (Ore number) है या नहीं। जैसा कि हम जानते हैं, एक ओर संख्या वह संख्या होती है जिसके भाजकों का हार्मोनिक माध्य एक पूर्णांक होता है।
उदाहरण के लिए, यदि इनपुट 28 है, तो आउटपुट True होगा क्योंकि 28 के छह भाजक हैं: [1, 2, 4, 7, 14, 28], और उनका हार्मोनिक माध्य 3 है जो पूर्णांक है।

हल करने का तरीका
- get_all_div() फ़ंक्शन परिभाषित करें जो सभी भाजक ढूंढता है
- get_harmonic_mean() फ़ंक्शन परिभाषित करें जो हार्मोनिक माध्य निकालता है
- मुख्य विधि से:
- माध्य := get_harmonic_mean(n)
- यदि माध्य पूर्णांक है, तो True लौटाएं
- अन्यथा False लौटाएं
उदाहरण कोड
def get_all_div(n):
div = []
for i in range(1, int(n**0.5) + 1):
if n % i == 0:
if n // i == i:
div.append(i)
else:
div.append(i)
div.append(n // i)
return div
def get_harmonic_mean(n):
div = get_all_div(n)
total = 0
length = len(div)
for i in range(length):
total += (n / div[i])
total /= n
return length / total
def solve(n):
mean = get_harmonic_mean(n)
if mean - int(mean) == 0:
return True
return False
n = 28
print(solve(n))
इनपुट
28
आउटपुट
True