मैं यह पता लगाने में असमर्थ हूं कि कोड में क्या गलत है और क्यों 6 को एक पूर्ण संख्या के रूप में प्रदर्शित नहीं किया जाता है।

10 से नीचे की सही संख्याओं को प्रिंट करने के लिए मेरा कोड निम्नलिखित है:

    s=0
    for j in range(10):
        for i in range(1,j):
            if j%i==0: 
                s=s+i      #for summing up the factors
        if j==s:
            print(j,'is a perfect number')
        else:
            print(j,'is not a perfect number')

आउटपुट है: 0 एक पूर्ण संख्या है 1 एक पूर्ण संख्या नहीं है 2 एक पूर्ण संख्या नहीं है 3 एक पूर्ण संख्या नहीं है 4 एक पूर्ण संख्या नहीं है 5 एक पूर्ण संख्या नहीं है 6 एक पूर्ण संख्या नहीं है 7 एक पूर्ण संख्या नहीं है 8 एक पूर्ण संख्या नहीं है 9 एक पूर्ण संख्या नहीं है

0
Monk 8 मई 2018, 17:11

2 जवाब

सबसे बढ़िया उत्तर

समस्या यह थी कि आप प्रत्येक पूर्णांक के लिए s को रीसेट नहीं कर रहे थे।

for j in range(10):
    s=0
    for i in range(1,j):
        if j%i==0: 
            s=s+i      #for summing up the factors
    if j==s:
        print(j,'is a perfect number')
    else:
        print(j,'is not a perfect number')

(0, 'एक पूर्ण संख्या है')
(1, 'एक पूर्ण संख्या नहीं है')
(2, 'एक पूर्ण संख्या नहीं है')
(3, 'एक पूर्ण संख्या नहीं है')
(4, 'एक पूर्ण संख्या नहीं है')
(5, 'एक पूर्ण संख्या नहीं है')
(6, 'एक पूर्ण संख्या है')
(7, 'एक पूर्ण संख्या नहीं है')
(8, 'एक पूर्ण संख्या नहीं है')
(9, 'एक पूर्ण संख्या नहीं है')

0
Alexis Farmer 8 मई 2018, 17:18

आपको लूप के लिए सबसे बाहरी में योग को 0 पर रीसेट करना होगा:

for j in range(10):
    s=0
    for i in range(1,j):
        if j%i==0: 
            s=s+i      #for summing up the factors
    if j==s:
        print(j,'is a perfect number')
    else:
        print(j,'is not a perfect number')

यह आउटपुट प्रिंट करता है:

0 एक पूर्ण संख्या है
1 एक पूर्ण संख्या नहीं है
2 एक पूर्ण संख्या नहीं है
3 एक पूर्ण संख्या नहीं है
4 एक पूर्ण संख्या नहीं है
5 एक पूर्ण संख्या नहीं है
6 एक पूर्ण संख्या है
7 एक पूर्ण संख्या नहीं है
8 एक पूर्ण संख्या नहीं है
9 एक पूर्ण संख्या नहीं है

0
Zach Jones 8 मई 2018, 17:17