इस समस्या में, हमें तीन नंबर N, K और R दिए गए हैं। हमारा काम प्राकृतिक संख्याओं (N तक) का योग ज्ञात करने के लिए एक प्रोग्राम बनाना है, जिसका मॉड्यूल K के साथ है उपज आर.
हम N से कम सभी संख्याएँ जोड़ेंगे जो निम्नलिखित शर्त को पूरा करती हैं, i%K ==R.
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
N = 14, K = 4, R = 1
आउटपुट
28
स्पष्टीकरण - N से छोटी सभी संख्याएँ, जिन्हें 4 से विभाजित करने पर 1 शेष बचता है, 1, 5, 9, 13 हैं।
इस समस्या को हल करने के लिए, हम आर से एन तक लूप करेंगे, और के द्वारा मूल्य में वृद्धि करेंगे। इसलिए, हमें एक सम संख्या मिलेगी जो दी गई शर्त को पूरा करती है। और उन्हें योग में जोड़ें।
यहां, हम सामान्य लूप के लिए इस्तेमाल कर सकते थे यानी अंतराल के रूप में 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<<"Sum of natural numbers (up to "<<N<<") whose modulo with "<<K<<" yields "<<R<<" is "<<CalcSumofRem(N, K, R); return 0; }
आउटपुट
Sum of natural numbers (up to 14) whose modulo with 4 yields 1 is 28