पाइथन में संख्याओं का योग कैसे खोजें

पढ़ने का समय: 4 मिनट
प्रकाशित तिथि:
अंतिम अपडेट:

शुरुआती प्रोग्रामर के लिए आमतौर पर उपयोग किए जाने वाले कार्यों में से एक संख्या के अंकों का योग और गुणनफल ज्ञात करना है। संख्या को कीबोर्ड से इनपुट किया जा सकता है या बेतरतीब ढंग से उत्पन्न किया जा सकता है। कार्य इस प्रकार दिया गया है:

एक संख्या दी गई है। इसके अंकों का योग और गुणनफल ज्ञात कीजिए।

उदाहरण के लिए, संख्या 253 के अंकों का योग 10 है, क्योंकि 2 + 5 + 3 = 10। संख्या 253 के अंकों का गुणनफल 30 है, क्योंकि 2 * 5 * 3 = 30।

इस मामले में, कार्य इस तथ्य से जटिल हो जाता है कि अंकों की संख्या पहले से (प्रोग्राम लिखते समय) ज्ञात नहीं होती है। यह तीन अंकों की संख्या हो सकती है, जैसा कि ऊपर दिए गए उदाहरण में है, या आठ अंकों की, या एक अंक की।

आम तौर पर यह माना जाता है कि यह कार्य अंकगणितीय रूप से और लूप का उपयोग करके हल किया जाना चाहिए। अर्थात्, दी गई संख्या के साथ क्रमिक रूप से कुछ अंकगणितीय संक्रियाएँ निष्पादित की जानी चाहिए, जिससे इसके सभी अंक निकाले जा सकें, फिर उन्हें जोड़ा जाए और गुणा किया जाए।

इसमें पूर्णांक विभाजन और शेषफल खोजने के संक्रियाओं का उपयोग किया जाता है। यदि किसी संख्या को पूर्णांक से 10 से विभाजित किया जाता है, तो संख्या का अंतिम अंक “खो” जाएगा। उदाहरण के लिए, 253 ÷ 10 = 25 (शेषफल 3)। दूसरी ओर, यह खोया हुआ अंक शेषफल है। इस अंक को प्राप्त करने के बाद, हम इसे अंकों के योग में जोड़ सकते हैं और संख्या के अंकों के गुणनफल से गुणा कर सकते हैं।

मान लें कि n स्वयं संख्या है, suma उसके अंकों का योग है, और mult अंकों का गुणनफल है। तब अंकों के योग और गुणनफल को खोजने के लिए एल्गोरिथ्म को शब्दों में इस प्रकार वर्णित किया जा सकता है:

परिवर्तनीय suma को शून्य असाइन करें। परिवर्तनीय mult को एक असाइन करें। शून्य असाइन नहीं किया जा सकता है, क्योंकि शून्य से गुणा करने पर परिणाम शून्य होगा। जब तक n चर का मान शून्य से बड़ा है, तब तक निम्नलिखित कार्यदोहराएं: n के मान को 10 से विभाजित करने पर शेषफल ज्ञात करें, अर्थात संख्या का अंतिम अंक निकालें। निकाले गए अंक को योग में जोड़ें और इस अंक को गुणनफल में बढ़ाएँ। संख्या n के अंतिम अंक से छुटकारा पाने के लिए पूर्णांक को 10 से भाग दें। पायथन भाषा में शेषफल खोजने के लिए प्रतिशत चिह्न – % का उपयोग किया जाता है। पूर्णांक विभाजन दो स्लैश – // का उपयोग करके किया जाता है।

पायथन में प्रोग्राम कोड

n = int(input())
sum = 0
product = 1
while n > 0:
    digit = n % 10
    sum = sum + digit
    product = product * digit
    n = n // 10
print("Sum:", sum)
print("Product:", product)

निष्पादन उदाहरण:

253
Sum: 10
Product: 30

चरों के मानों को छोटे रूप में बदला जा सकता है:

while n > 0:
    digit = n % 10
    sum += digit
    product *= digit
    n //= 10

ऊपर दिया गया प्रोग्राम केवल प्राकृतिक संख्याओं के अंकों के योग और गुणनफल को खोजने के लिए उपयुक्त है, अर्थात शून्य से अधिक पूर्णांक। यदि मूल संख्या कोई भी पूर्णांक हो सकती है, तो ऋणात्मक संख्याओं और शून्य के प्रसंस्करण पर विचार किया जाना चाहिए।

यदि संख्या ऋणात्मक है, तो यह उसके अंकों के योग को प्रभावित नहीं करती है। ऐसे मामले में, पायथन में abs फ़ंक्शन का उपयोग करना पर्याप्त होगा, जो इसे दिए गए तर्क के निरपेक्ष मान को देता है। यह ऋणात्मक संख्या को धनात्मक में बदल देगा, और चक्र जबकि n > 0 पहले की तरह ही काम करेगा।

यदि संख्या शून्य के बराबर है, तो तर्क के अनुसार, उसके अंकों का योग और उनका गुणनफल शून्य मान होना चाहिए। चक्र काम नहीं करेगा। चूंकि बहुत का प्रारंभिक मान 1 है, इसलिए आपको यह जांचने के लिए एक शर्त जोड़नी चाहिए कि दी गई संख्या शून्य है या नहीं।

सभी पूर्णांकों को संसाधित करने वाला प्रोग्राम इस प्रकार शुरू हो सकता है:

n = abs(int(input()))
sum = 0
product = 1
if n == 0:
    product = 0

ध्यान दें कि पायथन में सशर्त ऑपरेटर if digit != 0: का शीर्षक निम्न रूप में छोटा किया जा सकता है: if digit:. क्योंकि 0 गलत है। अन्य सभी संख्याओं को सत्य माना जाता है।

संख्या के अंकों के योग और गुणनफल को खोजने के लिए ऊपर वर्णित गणितीय एल्गोरिथ्म को शास्त्रीय या सार्वभौमिक कहा जा सकता है। इसी तरह, आप सभी अनिवार्य भाषाओं में समस्या का समाधान कर सकते हैं, उनके टूलकिट की समृद्धि की परवाह किए बिना। हालाँकि, प्रोग्रामिंग भाषा के साधन आपको किसी समस्या को दूसरे तरीके से हल करने की अनुमति दे सकते हैं, जो अक्सर अधिक सरल होता है। उदाहरण के लिए, पायथन में, आप दर्ज की गई स्ट्रिंग को संख्या में परिवर्तित नहीं कर सकते हैं, लेकिन उससे अलग-अलग वर्णों को निकाल सकते हैं, जिन्हें पूर्णांक प्रकार int में परिवर्तित किया जाता है:

a = input()
sum = 0
product = 1
for digit in a:
    sum += int(digit)
    product *= int(digit)
print("Sum:", sum)
print("Product:", product)

यदि आप कोड में यह जांच जोड़ते हैं कि निकाली गई स्ट्रिंग वर्ण वास्तव में एक अंक है, तो प्रोग्राम अधिक बहुमुखी हो जाएगा। इसकी मदद से, आप न केवल पूर्णांकों के अंकों का योग और गुणनफल की गणना कर सकते हैं, बल्कि वास्तविक संख्याओं के अंकों का योग और गुणनफल भी कर सकते हैं, साथ ही किसी भी स्ट्रिंग से निकाले गए अंकों का योग और गुणनफल भी कर सकते हैं।

n = input()
sum = 0
product = 1
for digit in n:
    if digit.isdigit():
        sum += int(digit)
        product *= int(digit)
print("Sum:", sum)
print("Product:", product)

निष्पादन उदाहरण:

This3 number3is9low!
Sum: 15
Product: 81

स्ट्रिंग विधि isdigit जाँचती है कि क्या स्ट्रिंग में केवल अंक हैं। हमारे मामले में, स्ट्रिंग की भूमिका एकल वर्ण द्वारा निभाई जाती है जिसे वर्तमान चक्र पुनरावृत्ति में निकाला जाता है।

पायथन के गहन ज्ञान से आप समस्या को और अधिक विदेशी तरीकों से हल कर सकते हैं:

import functools
n = input()
n = [int(digit) for digit in n]
sum = sum(n)
product = functools.reduce(lambda x, y: x*y, n)
print("Sum:", sum)
print("Product:", product)

अभिव्यक्ति [int(अंकीय) के लिए अंकीय n में] एक जनरेटर सूची है। यदि स्ट्रिंग “234” दर्ज की गई है, तो संख्याओं की एक सूची प्राप्त की जाएगी: [2, 3, 4].

अंतर्निहित sum फ़ंक्शन इसे दिए गए तर्क के तत्वों का योग देता है।

फ़ंक्शन functools.reduce दो तर्क लेता है – एक लैम्ब्डा अभिव्यक्ति और इस मामले में एक सूची। यहां वेरिएबल x में गुणनफल का संचय होता है, और y सूची का अगला मान लेता है।

5 / 5. 1

शेयर:

एक टिप्पणी छोड़ें