n तक की सभी प्राकृतिक संख्याओं को जोड़ना जो X या Y से विभाज्य हैं, उन सभी संख्याओं को चुनना है जो X या Y से विभाज्य हैं और उन्हें एक वेरिएबल में जोड़ना है जो योग संग्रहीत करता है।
X या Y से विभाज्य पहली N प्राकृतिक संख्याओं का योग ज्ञात करने के दो तरीके हैं:
- लूप और सशर्त स्टेटमेंट का उपयोग करके
- सूत्र का उपयोग करके
विधि 1 - लूप और सशर्त स्टेटमेंट का उपयोग करके
यह विधि एक लूप का उपयोग करती है जो n संख्याओं तक गिनती करता है और उन संख्याओं को चुनता है जो X या Y से विभाज्य हैं और उन्हें प्रत्येक पुनरावृत्ति में जोड़कर एक वेरिएबल में सहेजती है।
उदाहरण कोड
#include <stdio.h>
int main(void) {
int n = 54;
int x = 2;
int y = 5;
int sum = 0;
for(int i = 0; i <= n; i++) {
if(i%x == 0 || i%y == 0)
sum = sum + i;
}
printf("%d प्राकृतिक संख्याओं का योग जो %d और %d से विभाज्य हैं, %d है", n, x, y, sum);
return 0;
}
आउटपुट
54 प्राकृतिक संख्याओं का योग जो 2 और 5 से विभाज्य हैं, 881 है
विधि 2 - सूत्र का उपयोग करके
यह विधि किसी संख्या से विभाज्य पहली n संख्याओं के योग को ज्ञात करने के लिए सूत्र का उपयोग करती है।
इसे सूत्र का उपयोग करके ज्ञात किया जा सकता है: Sn/x = ((n/x)/2) × (2 × x + (n/x - 1) × x)
इस सूत्र का उपयोग करके x से विभाज्य n प्राकृतिक संख्याओं का योग ज्ञात करें: Sn/x = ((n/x)/2) × (2 × x + (n/x - 1) × x)
इस सूत्र का उपयोग करके y से विभाज्य n प्राकृतिक संख्याओं का योग ज्ञात करें: Sn/y = ((n/y)/2) × (2 × y + (n/y - 1) × y)
अब, इस सूत्र का उपयोग करके x और y दोनों से विभाज्य n प्राकृतिक संख्याओं का योग ज्ञात करें: Sn/x*y = ((n/(x*y))/2) × (2 × (x*y) + (n/(x*y) - 1) × (x*y))
अब, हम x के योग और y के योग को जोड़ेंगे और x*y के योग को घटाएंगे जो दो बार जुड़ गए हैं।
उदाहरण कोड
#include <stdio.h>
int main() {
int n = 54;
int x = 2, y = 5;
int Sx, Sy, Sxy, sum;
Sx = ((n / x)) * (2 * x + (n / x - 1) * x) / 2;
Sy = ((n / y)) * (2 * y + (n / y - 1) * y) / 2;
Sxy = ((n / (x * y))) * (2 * (x * y) + (n / (x * y) - 1) * (x * y)) / 2;
sum = Sx + Sy - Sxy;
printf("%d प्राकृतिक संख्याओं का योग जो %d और %d से विभाज्य हैं, %d है", n, x, y, sum);
return 0;
}
आउटपुट
54 प्राकृतिक संख्याओं का योग जो 2 और 5 से विभाज्य हैं, 881 है
दूसरी विधि बेहतर है क्योंकि यह किसी लूप का उपयोग नहीं करती जिसका अर्थ है बेहतर समय जटिलता। लेकिन यदि इनपुट केस छोटे हैं तो पहली विधि भी उपयोग की जा सकती है। लेकिन बड़े इनपुट केस के लिए दूसरी विधि सर्वोत्तम विकल्प नहीं है।