• 1
    डेटा I/O
    • कार्य
  • 2
    शर्तें
    • कार्य
  • 3
    for लूप
    • कार्य
  • 4
    स्ट्रिंग
    • कार्य
  • 5
    while लूप
    • कार्य
  • 6
    सूचियां
    • कार्य
  • 7
    2D मैट्रिक्स
    • कार्य
  • 8
    डिक्शनरी
    • कार्य
  • 9
    सेट
    • कार्य
  • 10
    फ़ंक्शन
    • कार्य
  • к

पाठ 5. While cycle

कठिनाई:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

कार्य«पूर्ण संख्या»

💻 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

आउटपुट

हाँ
हाँ
नहीं
नहीं

संकेत

There will be no clue here, decide for yourself!

main.py
परीक्षण 1
परीक्षण 2
परीक्षण 3
परीक्षण 4
परीक्षण 5
परीक्षण 6
परीक्षण 7
परीक्षण 8
परीक्षण 9
परीक्षण 10
डेवलपर का समाधान
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

विज्ञापन

red-snake blue-snake green-snake

कोड चल रहा है...

AI सहायक

नमस्ते! मैं आपका प्रोग्रामिंग सहायक हूँ। Python के बारे में कोई भी सवाल पूछें — मैं functions, methods समझा सकता हूँ और मौजूदा task में मदद कर सकता हूँ!