这个题是月赛的题目,但是当时没有理解好题目,思路错了,很没悬念的悲剧了。
后来想明白了,题目中要求是把一个拆解成3个数相乘的情况,然后把三个数进行求和,最后输出最小的和。
。既然思路清晰了,下面就是最简单的写代码了。
原题地址:点击打开链接。
代码如下:
#include<stdio.h>
int main()
{
int i,j,k,l,n,m;
while(scanf("%d",&n)!=EOF)
{
int sum=0,min=205;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(n%(j*i)==0)//此处需要仔细想想why。
{
k=n/(j*i);
sum=k+i+j;
if(sum<min)
min=sum;
}
printf("%d\n",min);
}return 0;
}