N तक की उन प्राकृतिक संख्याओं का योग जो 2 या 5 से विभाज्य हैं, को 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 %ld", sum);
return 0;
}
आउटपुट
Sum is 201