ধরুন আমাদের একটি সংখ্যা N আছে। একটি ধনাত্মক পূর্ণসংখ্যা x এর একটি ফাংশন gcdSum(x) বিবেচনা করুন যা সেই পূর্ণসংখ্যার অঙ্কের যোগফল সহ gcd। আমাদের সবচেয়ে ছোট পূর্ণসংখ্যা x>=n খুঁজে বের করতে হবে, যেমন gcdSum(x)> 1।
সুতরাং, যদি ইনপুটটি N =31 এর মত হয়, তাহলে আউটপুট হবে 33, কারণ 31-এর gcd এবং (3+1) হল 1। 32-এর gcd এবং (3+2) হল 1, এবং 33-এর gcd এবং ( 3+3) হল 3.
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
for initialize i := n, when i <= n + 2, update (increase i by 1), do: jml := 0 x := i while x > 0, do: jml := jml + x mod 10 x := x / 10 if gcd of i and jml is not equal to 1, then: return i return 0
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; int solve(int n) { for (long i = n; i <= n + 2; i++) { long jml = 0; long x = i; while (x > 0) { jml += x % 10; x /= 10; } if (__gcd(i, jml) != 1) { return i; } } return 0; } int main() { int N = 31; cout << solve(N) << endl; }
ইনপুট
31
আউটপুট
33