题目描述

给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。

输入描述:

一行三个整数a, b, c表示面积(1 <= a, b, c <= 10000)。

输出描述:

一行一个整数表示边长和。
示例1

输入

1 1 1

输出

12
示例2

输入

4 6 6

输出

28
思路:设长方体的边长分别为x,y,z,输入的面积分别为a,b,c
既有x*y=a,x*z=b,y*z=c
整理得到x=sqrt(a*b/c);y=sqrt(a*c/b);z=sqrt(b*c/a);
长方体边长和为4*(x+y+z)=4*(sqrt(a*b/c)+sqrt(a*c/b)+sqrt(b*c/a));
得解
注:无需用double类型,用int类型即可,答案不会超过int的范围
代码如下:
#include<stdio.h>
#include<math.h>
int main(){
    int a,b,c,ans=0;
    scanf("%d%d%d",&a,&b,&c);
    ans=sqrt(b*c/a)+sqrt(a*c/b)+sqrt(a*b/c);
    printf("%d\n",4*ans);
    return 0;
}