#include #include #include std::vector vec; long long int ans; void f(int p,long long int a,long long int b,long long int c){ if(vec.size()==p){ ans=std::min(a+b+c-3,ans); }else{ long long int e=vec[p]; f(p+1,a*e,b,c); f(p+1,a,b*e,c); f(p+1,a,b,c*e); } } int main() { // your code goes here long long int n,t; std::cin>>n; t=n; ans=n; for(long long int i=2;i*i<=n;i++){ while(n%i==0){ n/=i; vec.push_back(i); } } if(n>1){ vec.push_back(n); } f(0,1,1,1); std::cout<