Digits in Multiplication

Problem Link

Solution by Mr.Olimpia100 pts

Code / Notes

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

int gcd(int a, int b) {
    return gcd(a, b-a);
}
int pot(int a){
    int p=1;
    for(int i=0; p<10*a; i++){
        if(p<a && a<10*p){
            return i+1;
            break;
        }
        else{
            p=10*p;
        }
    }
}

int main() {
   long long N;
   cin >> N;
   vector<int>divisores;
   for(long long i=1; i*i<=N; i++){
    if(N%i == 0){
        divisores.push_back(i);
    }
   }
   long long d = divisores[divisores.size()-1];
   if(pot(d)>=pot(N/d)){
    cout << pot(d);
   }
   else{
    cout << pot(N/d);
   }


   // divisores.back()
   // divisores[divisores.size()-1]
}

Last updated 3 weeks, 3 days ago


« Back to problem