এই সমস্যায়, আমাদের তিনটি সংখ্যা দেওয়া হয়েছে 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<<"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