তিনটি সংখ্যা X, Y এবং N দেওয়া আছে (রেঞ্জ [১, N])। লক্ষ্য হল ১ থেকে N পর্যন্ত যেসব সংখ্যা শুধু X এবং Y ব্যবহার করে (কোনো সংখ্যক বার যোগ করে) তৈরি করা যায়, তাদের সংখ্যা বের করা।
যেমন X=2, Y=3 হলে ৬ = 2+2+2 বা 3+3, ৭ = 2+2+3। প্রতিটি সংখ্যা থেকে X বা Y বিয়োগ করে ০ হলে সেটি গঠনযোগ্য।
ইনপুট: N=10, X=4, Y=3
আউটপুট: গঠনযোগ্য সংখ্যা: ৭
ব্যাখ্যা: ৩, ৪, ৬ (৩+৩), ৭ (৩+৪), ৮ (৪+৪), ৯ (৩+৩+৩), ১০ (৩+৩+৪)
ইনপুট: N=10, X=5, Y=4
আউটপুট: গঠনযোগ্য সংখ্যা: ৫
- X, Y, N নেওয়া হয়।
constructNums(int n, int x, int y)ফাংশন কাউন্ট রিটার্ন করে।- ১ থেকে N পর্যন্ত লুপে প্রতিটি সংখ্যা num = i নিয়ে while লুপে X ও Y বিয়োগ করা হয়।
- যদি শেষে num = 0 হয়, তবে count বাড়ানো হয়।
#includeusing namespace std; int constructNums(int n, int x, int y){ int count = 0; for (int i = 1; i <= n; i++) { int num = i; while(num > 0){ while((num % x) == 0 && num != 0) num -= x; while((num % y) == 0 && num != 0) num -= y; if (num > x && num > y) num = num - x - y; else break; } if (num == 0) count++; } return count; } int main(){ int N = 20, X = 5, Y = 4; cout << "X ও Y দিয়ে নির্মিত সংখ্যা: " << constructNums(N, X, Y); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
X ও Y দিয়ে নির্মিত সংখ্যা: ১৪