এখানে আমরা দেখব কিভাবে একটি সংখ্যা A তৈরি করতে হয় এর সাথে N সংখ্যা যোগ করে, এবং প্রতিটি ধাপে নতুন সংখ্যা যোগ করার সময় এটি অন্য একটি সংখ্যা B দ্বারা বিভাজ্য হবে। আসুন বিবেচনা করা যাক আমরা 4 যোগ করে একটি 5-অঙ্কের সংখ্যা তৈরি করতে যাচ্ছি। এর সাথে অতিরিক্ত সংখ্যা। আমরা 7 দ্বারা বিভাজ্যতা পরীক্ষা করব। সংখ্যাটি 8 থেকে শুরু হবে। সুতরাং প্রথমে এটি এর সাথে 4 যুক্ত করবে, সুতরাং সংখ্যাটি 84 হবে, যা 7 দ্বারা বিভাজ্য। তারপর সংখ্যাটির সাথে 0 যোগ করুন যাতে এটি দ্বারা বিভাজ্য থাকে। 7. যদি নম্বরটি তৈরি করা না যায় তবে এটি -1 ফেরত দেবে।
অ্যালগরিদম
addNDigits(a, b, n)
0 থেকে 9 পর্যন্ত সমস্ত সংখ্যা x এর জন্যbegin num := a for all number x from 0 to 9, do temp := a * 10 + x if temp mod b is 0, then a := temp break end if done if num = a, then return -1 end if add remaining 0’s with a return a. endসঙ্গে অবশিষ্ট 0 যোগ করুন
উদাহরণ
#include<iostream> using namespace std; int add_n_digits(int a, int b, int n) { int num = a; for (int i = 0; i <= 9; i++) { //test by adding all digits (0-9) int tmp = a * 10 + i; if (tmp % b == 0) { a = tmp; //update a after adding break; } } if (num == a) //if no digit is added, return -1 return -1; for (int j = 0; j < n - 1; j++) //after getting divisible number, add 0s a *= 10; return a; } main() { int a, b, n; cout << "Enter A, B and N: "; cin >> a >> b >> n; int res = add_n_digits(a, b, n); if(res == -1) { cout << "Unable to get this type of number"; } else { cout << "Result is " << res; } }
আউটপুট
Enter A, B and N: 8 7 4 Result is 84000
আউটপুট
Enter A, B and N: 10 11 5 Unable to get this type of number