PKU 3536 Beer Refrigerator

http://poj.org/problem?id=3536
体積mの直方体の表面積を最小にしたい。
このときの幅、高さ、奥行きを求めろというような問題。
ただし全て整数とする。

割って計算する。

main(){
  int n;
  cin>>n;
  int area=1+n*2;
  int a=1,b=1,c=n;
  for(int i=1;i*i<=n;i++){
    if(n%i)continue;
    int m=n/i;
    for(int j=1;j*j<=m;j++){
      if(m%j)continue;
      int ta=i*j+m/j*i+m;
      if(ta<area){
        area=ta;
        a=i,b=j,c=m/j;
      }
    }
  }
  cout<<a<<' '<<b<<' '<<c<<endl;
}