Orignal question can be found here.
My solution is as follows:
int integerBreak(int n) { int result=0; int new_result=0; for(int cnt=2; cnt<=n; ++cnt) { new_result=pow((n/cnt+1), n%cnt) * pow(n/cnt,(cnt-n%cnt)); if( new_result > result) result=new_result; else break; } return result; }