2 या 5 से विभाज्य n प्राकृत संख्याओं का योग N तक की सभी प्राकृत संख्याओं का योग जो 2 से विभाज्य है और N तक की सभी प्राकृत संख्याओं का योग जो 5 से विभाज्य है, ज्ञात करके पाया जा सकता है। इन दो योगों को जोड़ना और फिर इसे प्राकृतिक संख्याओं के योग से घटाकर N तक जो 10 से विभाज्य है, यह हमें वांछित परिणाम देता है। यह विधि एक कुशल विधि है जिसका उपयोग n के बड़े मानों तक योग ज्ञात करने के लिए किया जा सकता है।
आप में से कुछ लोग लूप और कंडीशनल स्टेटमेंट का उपयोग करने और फिर उन सभी नंबरों को जोड़ने के बारे में सोच रहे होंगे जो 2 या 5 से विभाज्य हैं लेकिन यह विधि अक्षम है क्योंकि इसमें ऑर्डर n की समय जटिलता है। इसका मतलब है कि n के बड़े मानों के लिए प्रोग्राम लूप n को कई बार चलाएगा। और यह निष्पादन कार्यक्रम को भारी बना देगा।
2 से विभाज्य n प्राकृत संख्याओं का योग ज्ञात करने का सूत्र
Sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2
5 से विभाज्य n प्राकृत संख्याओं का योग ज्ञात करने का सूत्र
Sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2
10 से विभाज्य n प्राकृत संख्याओं का योग ज्ञात करने का सूत्र
Sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2
वांछित आउटपुट
Sum = Sum2 + Sum5 - Sum10
उदाहरण
#include <stdio.h> int main() { int n = 25; long int sum2, sum5, sum10; sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2; sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2; sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2; long int sum = sum2 + sum5 - sum10; printf("Sum is %d", sum); return 0; }
आउटपुट
Sum is 201