2009年3月1日 星期日

Q10365: Blocks

// Run time: 0.000
#include <stdio.h>
#define MIN 1000000 // enough huge number
int main()
{
int num;
int n;
int min;
int i, j, k;
int area;
scanf("%d", &num);

while (num--)
{
scanf("%d", &n);

min = MIN;

for ( i = 1; i <= n; i++)
{
if (!(n%i))
for ( j = i; j <= n/i; j++)
{
if (!(n%(i*j)))
{
k = n/i/j;
if (k < j) break;

if (i*j*k == n)
{
area = (i*j+j*k+i*k)*2;
min = area < min ? area : min;
}
}
}
}

printf("%d\n", min);
}

return 0;
}

沒有留言: