इस समस्या में, हमें तीन संख्याएं N, K और R दी गई हैं। हमारा कार्य एक प्रोग्राम बनाना है जो N तक की प्राकृतिक संख्याओं का योग ढूंढे जिनका K से मॉड्यूलो R देता है।
हम उन सभी संख्याओं को जोड़ेंगे जो N से कम हैं और निम्नलिखित शर्त को पूरा करती हैं, यानी i%K == R।
आइए एक उदाहरण लेकर समस्या को समझते हैं,
इनपुट
N = 14, K = 4, R = 1
आउटपुट
28
व्याख्या - N से कम वे सभी संख्याएं जो 4 से विभाजित करने पर 1 शेष देती हैं: 1, 5, 9, 13।
इस समस्या को हल करने के लिए, हम R से N तक लूप करेंगे, और मान को K से बढ़ाएंगे। ताकि हमें हर वह संख्या मिले जो दी गई शर्त को पूरा करती है। और उन्हें योग में जोड़ें।
यहां, हम सामान्य लूप का उपयोग कर सकते थे यानी 1 के अंतराल के साथ। लेकिन हमने इसका उपयोग पहले किया है क्योंकि यह कम समय लेगा।
उदाहरण
समाधान को दर्शाने वाला प्रोग्राम,
#include <iostream>
using namespace std;
int CalcSumofRem(int N, int K, int R) {
int sum = 0;
for (int i = R; i <= N; i += K) {
if (i % K == R)
sum += i;
}
return sum;
}
int main() {
int N = 14, K = 4, R = 1;
cout << "प्राकृतिक संख्याओं का योग ( " << N << " तक) जिनका मॉड्यूलो " << K << " के साथ " << R << " देता है: " << CalcSumofRem(N, K, R);
return 0;
}
आउटपुट
प्राकृतिक संख्याओं का योग ( 14 तक) जिनका मॉड्यूलो 4 के साथ 1 देता है: 28