यहां हम देखेंगे कि N अंकों को A के साथ जोड़कर एक संख्या कैसे उत्पन्न की जाए, और प्रत्येक चरण में नए अंक जोड़ते समय यह दूसरी संख्या B से विभाज्य हो। मान लीजिए हम 4 अतिरिक्त अंक जोड़कर एक 5-अंकीय संख्या बनाने जा रहे हैं। हम 7 से विभाज्यता की जांच करेंगे। संख्या 8 से शुरू होगी। तो पहले यह 4 को जोड़ेगा, इसलिए संख्या 84 होगी, जो 7 से विभाज्य है। फिर संख्या के साथ 0 जोड़ें ताकि यह 7 से विभाज्य रहे। यदि संख्या उत्पन्न नहीं की जा सकती, तो यह -1 लौटाएगा।
एल्गोरिदम
addNDigits(a, b, n)
begin
num := a
0 से 9 तक सभी संख्या x के लिए, करें
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
शेष 0 को a के साथ जोड़ें
return a.
end
उदाहरण
#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++) { //सभी अंकों (0-9) को जोड़कर परीक्षण करें
int tmp = a * 10 + i;
if (tmp % b == 0) {
a = tmp; //जोड़ने के बाद a अपडेट करें
break;
}
}
if (num == a) //यदि कोई अंक नहीं जुड़ा, तो -1 लौटाएं
return -1;
for (int j = 0; j < n - 1; j++) //विभाज्य संख्या प्राप्त करने के बाद, 0 जोड़ें
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