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("sum of %d natural numbers divisible by %d and %d is %d" ,n,x,y,sum); return 0; }
আউটপুট
sum of 54 natural numbers divisible by 2 and 5 is 881
পদ্ধতি 2 - সূত্র ব্যবহার করে ,
এই পদ্ধতিটি একটি সংখ্যা দ্বারা বিভাজ্য প্রথম n সংখ্যার যোগফল বের করতে সূত্র ব্যবহার করে।
এটি সূত্র ব্যবহার করে পাওয়া যাবে − SN/X =((N/X)/2) * (2 * X + (N/X - 1) * X)
এই সূত্রটি ব্যবহার করে x দ্বারা বিভাজ্য n প্রাকৃতিক সংখ্যার যোগফল পাওয়া যায় − S n/x =((n/x)/2) * (2 * x + (n/x - 1) * x)
এই সূত্রটি ব্যবহার করে y দ্বারা বিভাজ্য n প্রাকৃতিক সংখ্যার যোগফল পাওয়া যায় − S n/y =((n/y)/2) * (2 * y + (n/y - 1) * y)
এখন, এই সূত্রটি ব্যবহার করে x এবং y দ্বারা বিভাজ্য n প্রাকৃতিক সংখ্যার যোগফল পাওয়া যায়:S n/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("sum of %d natural numbers divisible by %d and %d is %d" ,n,x,y,sum); return 0; }
আউটপুট
sum of 54 natural numbers divisible by 2 and 5 is 881
দ্বিতীয় পদ্ধতিটি ভাল কারণ এটি কোনও লুপ ব্যবহার করে না যার অর্থ ভাল সময় জটিলতা। তবে ইনপুট কেসগুলি প্রথমের চেয়ে ছোট হলে এটিও ব্যবহার করা যেতে পারে। কিন্তু বড় ইনপুট ক্ষেত্রে দ্বিতীয় পদ্ধতিটি সেরা বিকল্প নয়৷
৷