You are viewing a single comment's thread. Return to all comments →
My code in C++. O(sqrt(n)).
int digsum(int x){ int ret = 0; while(x){ ret += (x % 10); x /= 10; } return ret; } void solve(){ int n; cin >> n; pair<int,int> ans(0,0); for(int i=1; i*i<=n; i++){ if(n % i == 0){ int d1 = i, d2 = n / d1; pair<int, int> p1(digsum(d1), -d1); pair<int, int> p2(digsum(d2), -d2); ans = max(ans, p1); ans = max(ans, p2); } } cout << -ans.second << '\n'; }
Seems like cookies are disabled on this browser, please enable them to open this website
Best Divisor
You are viewing a single comment's thread. Return to all comments →
My code in C++. O(sqrt(n)).