C ++ Найти все основания, такие что P в этих базах заканчивается десятичным представлением Q - PullRequest
1 голос
/ 27 апреля 2020

Даны два числа P и Q в десятичном виде. Найти все базисов так, чтобы P в этих базах заканчивался десятичным представлением Q.

#include <bits/stdc++.h>

using namespace std;

void convert10tob(int N, int b)
{
     if (N == 0)
        return;
     int x = N % b;
     N /= b;
     if (x < 0)
        N += 1;
     convert10tob(N, b);
     cout<< x < 0 ? x + (b * -1) : x;
     return;
}

int countDigit(long long n) 
{ 
    if (n == 0) 
        return 0; 
    return 1 + countDigit(n / 10); 
} 

int main()
{
    long P, Q;
    cin>>P>>Q;
    n = countDigit(Q);
    return 0;
}

В моей голове была мысль: я бы преобразовал P в другие базы и проверьте, истинно ли P % pow(10, numberofdigits(B)) == B.

Хорошо, я могу проверить для некоторого конечного числа баз, но как узнать, где (после какой базы) прекратить проверку. Я застрял здесь.

Для большей ясности, вот пример: Для P=71,Q=13 ответ должен быть 68 и 4

...