PKU 2363 Blocks

http://poj.org/problem?id=2363
辺の長さ1の立方体N個から直方体を作るときに、その表面積の最小値を求めるという問題。

最初、テストケースの数のことを見落として5って30にならなくないか?等とぼけていた問題。
全探索。

main(){
  int T;
  cin>>T;
  while(T--){
    int n;
    cin>>n;
    int ans=10000;
    for(int i=1;i<=n;i++){
      if(n%i)continue;
      for(int j=1;j<=n/i;j++){
	if(n/i%j)continue;
	int a=i,b=j,c=n/i/j;
	ans=min(ans,a*b*2+b*c*2+c*a*2);
      }
    }
    cout<<ans<<endl;
  }
}