🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
ProgerLib सभी के लिए Python
आप गुप्त "डिजिटल पाइथागोरियन्स की बिरादरी" में शामिल होने का प्रयास करते हैं। यह प्राचीन समाज मानता है कि संख्याएं ब्रह्मांड को नियंत्रित करती हैं, और विशेष, "पूर्ण" संख्याएं, दुनिया के सामंजस्य की कुंजी संग्रहीत करती हैं। अपना मूल्य साबित करने के लिए, आपको "पूर्णता की परीक्षा" उत्तीर्ण करनी होगी।
rnप्रोग्राम इनपुट के रूप में प्राकृतिक संख्याओं का एक क्रम प्राप्त करता है, प्रत्येक एक नई पंक्ति पर। इनपुट संख्या 0 के साथ समाप्त होता है। प्रत्येक दर्ज संख्या (0 को छोड़कर) के लिए, यह निर्धारित करना आवश्यक है कि क्या वह पूर्ण है।
rnप्रमाणपत्र: पूर्ण संख्या & mdash; यह एक प्राकृतिक संख्या है जो अपने सभी स्वयं के भाजकों के योग के बराबर होती है (अर्थात, सभी धनात्मक भाजक, जो स्वयं संख्या से भिन्न होते हैं)। उदाहरण के लिए, संख्या 6 के लिए, इसके स्वयं के भाजक 1, 2 और 3 हैं। उनका योग 1 + 2 + 3 = 6 है, जिसका अर्थ है कि 6 & mdash; एक पूर्ण संख्या है।
इनपुट में प्रोग्राम को प्रविष्टियाँ प्रदान की जाती हैं, प्रत्येक एक नई पंक्ति पर। अनुक्रम में अंतिम संख्या हमेशा 0 होती है। यह संख्या & mdash; इनपुट के अंत का संकेत है, और इसे संसाधित करना आवश्यक नहीं है।
इनपुट अनुक्रम में प्रत्येक संख्या (0 को छोड़कर) के लिए, प्रोग्राम को एक अलग पंक्ति में शब्द "yes" प्रदर्शित करना होगा, यदि संख्या पूर्ण है, और "no", यदि नहीं।
6
28
12
1
0
हाँ
हाँ
नहीं
नहीं
def is_perfect(n):
"""
Проверяет, является ли число n совершенным.
"""
# Совершенные числа по определению больше 1.
if n <= 1:
return False
# Начинаем сумму с 1, так как 1 - делитель любого числа.
sum_of_divisors = 1
# Ищем делители до квадратного корня из n.
# Это эффективный способ, так как делители ходят парами.
# Например, для 28: (2, 14), (4, 7).
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
sum_of_divisors += i
# Добавляем парный делитель, если он не равен самому корню
if i * i != n:
sum_of_divisors += n // i
# Сравниваем сумму делителей с исходным числом.
return sum_of_divisors == n
# Основной цикл программы
while True:
try:
number = int(input())
# Если ввели 0, завершаем программу.
if number == 0:
break
if is_perfect(number):
print("YES")
else:
print("NO")
except (ValueError, EOFError):
# Обработка некорректного ввода или конца файла
break
🎉 बधाई! 🎉
आपने कार्य को शानदार ढंग से हल किया! यह कठिन था, लेकिन आपने सही उत्तर खोजा। आप प्रोग्रामिंग में महारत के करीब हैं! ऐसे ही जारी रखें।
AD
विज्ञापन
कोड चल रहा है...