#include using namespace std; bool canConcatNumber(unsigned int N, unsigned int K) { if (N < 100) return false; /* Get middle digits (which are reversed) */ unsigned int middleN = 1; // using 1 for cases where we have zeroes between our end digits, like in 1002001 for (unsigned int i = 0; N != 0; i++) { if (i > 0 && N > 9) (middleN *= 10) += N % 10; N /= 10; } /* Get width of K as a power of 10 and reverse K */ unsigned int kWidth = 1, revK = 0; for (unsigned int tmpK = K; tmpK != 0; kWidth *= 10) { (revK *= 10) += tmpK % 10; tmpK /= 10; } /* Check if revK is inside middleN */ while (middleN != 1) { if ((middleN - revK) % kWidth == 0) return true; middleN /= 10; } return false; } int main() { cout << "N = "; int N; cin >> N; cout << "K = "; int K; cin >> K; cout << (canConcatNumber(N, K) ? "True" : "False") << endl; }