又一道错了n次
想得太简单
正确代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c=0,a1,b1,c1,v,min;
int t;
scanf("%d",&v);
min=1000000000;
t=(int)(pow(v,1.0/3))+1;
for(a=t;a>=1;a--)
{
if(v%a==0)
{
for(b=(int)(sqrt(v/a));b>0;b--)
if((v/a)%b==0)
{ c=(v/a)/b;break;}
if(a*b+b*c+c*a<min)
{
min=a*b+b*c+c*a;
a1=a;b1=b;c1=c;
}
}
}
printf("%d %d %d\n",a1,b1,c1);
}
错误代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c=0,v;
int t;double f;
scanf("%d",&v);
t=(int)(pow(v,1.0/3))+1;
for(a=t;a>=1;a--)
{
if(v%a==0)
{
for(b=(int)(sqrt(v/a));b>0;b--)
if((v/a)%b==0)
{ c=(v/a)/b;break;}
if(c!=0)
break;
}
}
printf("%d %d %d\n",a,b,c);
}