📄 3204629_ac_0ms_160k.cpp
字号:
#include <stdio.h>
#include <math.h>
int num[3];
int nn;
int min, a, b, c;
int area()
{
return 2*(num[0]*num[1]+num[1]*num[2]+num[0]*num[2]);
}
void solve()
{
if(num[0]*num[1]*num[2]==nn)
{
int s = area();
if(min==-1||s<min)
{
min = s;
a = num[0];
b = num[1];
c = num[2];
}
}
}
void dfs(int p,int n)
{
int q;
if(p==2)
{
num[p] = n;
solve();
return ;
}
q = (int)sqrt(n)+1;
for(int i = 1; i <= q; i++)
{
num[p] = i;
if(n % i==0)
{
dfs(p+1,n/i);
}
}
}
int main()
{
while(scanf("%d",&nn)==1)
{
min = -1;
dfs(0,nn);
printf("%d %d %d\n",a,b,c);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -