fbpx

Problema #944 – rest – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă n un număr natural. Aflați restul maxim care se poate obține dacă împărțim numărul n la orice număr care se obține prin eliminarea unei cifre ale sale.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran numărul r, reprezentând restul maxim cerut.

Restricții și precizări

  • 10 ≤ n ≤ 2.000.000.000
  • dacă prin eliminarea unei cifre se obține numărul 0, atunci n nu se va împărți la 0.

Exemplu

Intrare

217

Ieșire

13

Explicație

217:17=12 rest 13, 217:27=8 rest 1, 217:21=10 rest 7, deci restul maxim obținut este 13.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, x, r=0;
    long long p=1;
    cin>>n;
    while(p<=n)
    {
        x=n/(p*10)*p+n%p;
        if(x!=0)
        {
            if(n%x>r) r=n%x;
        }
        p=p*10;
    }
    cout<<r;
     return 0;
}
Comentarii

S-ar putea sa iti placa