Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

अधिकतम N ज्ञात करें जैसे कि पहले N प्राकृतिक संख्याओं के वर्ग का योग Python में X से अधिक न हो


मान लीजिए कि हमारे पास एक दिया गया पूर्णांक X है, हमें अधिकतम मान N ज्ञात करना है ताकि पहले N प्राकृतिक संख्याओं का योग मान X से अधिक न हो।

इसलिए, यदि इनपुट X =7 जैसा है, तो आउटपुट 2 होगा क्योंकि 2 N का अधिकतम संभव मान है, N =3 के लिए, श्रृंखला का योग X =7 से अधिक होगा इसलिए, 1^2 + 2^ 2 + 3^2 =1 + 4 + 9 =14.

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक फ़ंक्शन को परिभाषित करें sum_of_squares() । इसमें N

    . लगेगा
  • रेस :=(एन *(एन + 1) *(2 * एन + 1)) / 6

  • रिटर्न रेस

  • मुख्य विधि से, निम्न कार्य करें -

  • कम :=1

  • उच्च:=100000

  • एन:=0

  • जबकि निम्न −=उच्च, करें

    • मध्य:=(उच्च + निम्न)/2

    • अगर sum_of_squares(मध्य) −=X, तो

      • एन:=मध्य

      • कम :=मध्य + 1

    • अन्यथा,

      • उच्च :=मध्य - 1

  • वापसी एन

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def sum_of_squares(N):
   res = (N * (N + 1) * (2 * N + 1)) // 6
   return res
def get_max(X):
   low, high = 1, 100000
   N = 0
   while low <= high:
      mid = (high + low) // 2
      if sum_of_squares(mid) <= X:
         N = mid
         low = mid + 1
      else:
         high = mid - 1
   return N
X = 7
print(get_max(X))

इनपुट

7

आउटपुट

2

  1. पहले n प्राकृतिक संख्याओं के घन योग के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन −एक इनपुट n को देखते हुए, हमें श्रृंखला के योग 13 + 23 + 33 + 43 + …….+ n3 को n-वें पद तक प्रिंट करने की आवश्यकता है। यहां हम समस्या के समाधान तक पहुंचने के लिए दो दृष्टिकोणों पर चर्चा करेंगे -

  1. पायथन में रिकर्सन का उपयोग करके प्राकृतिक संख्याओं का योग कैसे प्राप्त करें?

    यदि कोई फ़ंक्शन स्वयं को कॉल करता है, तो उसे पुनरावर्ती फ़ंक्शन कहा जाता है। इसे अनंत लूप में गिरने से रोकने के लिए, रिकर्सिव कॉल को सशर्त स्टेटमेंट में रखा जाता है। निम्नलिखित प्रोग्राम उपयोगकर्ता से इनपुट के रूप में एक संख्या को स्वीकार करता है और इसे rsum() फ़ंक्शन के लिए तर्क के रूप में भेजता है

  1. पायथन का उपयोग करके प्राकृतिक संख्याओं का योग कैसे ज्ञात करें?

    आप लूप के दौरान एक चर i के मान को क्रमिक रूप से बढ़ाने के लिए उपयोग कर सकते हैं और इसे संचयी रूप से जोड़ सकते हैं। s,i=0,0 n=10 while i<n:    i=i+1    s=s+i print ("sum of first 10 natural numbers",s) फॉर लूप का उपयोग प्राकृतिक संख्याओं की एक श्रृंखला पर लूप करने