题意:
给出n ,求使n = x + y + z 且 x,y,z都是n的因子且x*y*z最大的值
“|”这个符号指的是因子
思路:
1/3 + 1/3 + 1/3 = 1;
1/2 + 1/4 + 1/4 = 1;
另1/3 + 1/2 + 1/6 = 1 也符合条件但是可以整合在第一种情况中,因为是6的倍数则必然是3的倍数
所以满足条件的n必是3或4的倍数
#include <iostream>
using namespace std;
typedef long long ll;
int main()
{
ll n,t;
scanf("%lld",&t);
for(;t--;)
{
scanf("%lld",&n);
if(n%3 == 0)//括号必须,!优先级大于%
{
cout<<n*n*n/27<<endl;
}
else if(n%4 == 0)
{
cout<<n*n*n/32<<endl;
}
else
{
cout<<-1<<endl;
}
}
return 0;
}