এই সমস্যাতে, আমাদের একটি সংখ্যা N দেওয়া আছে। আমাদের কাজ হলো ২ এবং ৭ দিয়ে বিভাজ্য প্রথম N প্রাকৃতিক সংখ্যার যোগফল বের করা।
অর্থাৎ, এখানে একটি সংখ্যা N দেওয়া থাকবে, প্রোগ্রামটি ১ থেকে N পর্যন্ত যেসব সংখ্যা ২ বা ৭ দিয়ে বিভাজ্য, তাদের যোগফল বের করবে।
উদাহরণ দিয়ে বুঝি,
ইনপুট −
N = 10
আউটপুট −
37
ব্যাখ্যা −
sum = 2 + 4 + 6 + 7 + 8 + 10 = 37
সমস্যা সমাধানের মৌলিক ধারণা হচ্ছে ২ বা ৭ দিয়ে বিভাজ্য সব সংখ্যা বের করা। এই যোগফল হবে −
২ দিয়ে বিভাজ্য সংখ্যaların যোগফল + ৭ দিয়ে বিভাজ্য সংখ্যaların যোগফল - ১৪ দিয়ে বিভাজ্য সংখ্যaların যোগফল।
এই সব যোগফল AP ফর্মুলা দিয়ে বের করা যায়,
S2 = [( (N/2)/2) * ( (2*2)+((N/2-1)*2) )] S7 = [( (N/7)/2) * ( (2*7)+((N/7-1)*7) )] S14 = [( (N/14)/2) * ( (2*14)+((N/2-1)*14) )]
ফাইনাল যোগফল,
Sum = S2 + S7 - S14 Sum = [( (N/2)/2) * ( (2*2)+((N/2-1)*2) )] + [( (N/7)/2) * ( (2*7)+((N/7-1)*7) )] - [( (N/14)/2) * ( (2*14)+((N/2-1)*14) )]
উদাহরণ
সমাধান ইলাস্ট্রেট করার প্রোগ্রাম,
#include <iostream>
using namespace std;
int findSum(int N) {
return ( ((N/2)*(2*2+(N/2-1)*2)/2) + ((N/7)*(2*7+(N/7-1)*7)/2) - ((N/14)*(2*14+(N/14-1)*14)/2) );
}
int main(){
int N = 42;
cout<<"The sum of natural numbers which are divisible by 2 and 7 is "<<findSum(N);
return 0;
}আউটপুট
The sum of natural numbers which are divisible by 2 and 7 is 525