这个题是月赛的题目,但是当时没有理解好题目,思路错了,很没悬念的悲剧了。
后来想明白了,题目中要求是把一个拆解成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; }