1 #include <stdio.h> 2 3 int main() 4 { 5 int T; 6 scanf("%d",&T); 7 while(T--) 8 { 9 int S,sum=10000,k=0; 10 scanf("%d",&S); 11 for(int x=1; x<=S; x++) 12 { 13 if(S%x==0&&sum>=(x+S/x)) 14 sum=x+S/x; 15 } 16 printf("%d\n",2*sum); 17 } 18 return 0; 19 }
接下来是不超时的代码:
1 #include<cstdio> 2 #include<cmath> 3 int main() 4 { 5 int t,s,n; 6 scanf("%d",&t); 7 while(t--) 8 { 9 scanf("%d",&s); 10 n=(int)sqrt((double) s); 11 while(s%n) 12 { 13 //printf("%d\n",n); 14 n--; 15 } 16 n=2*(n+s/n); 17 printf("%d\n",n); 18 } 19 return 0; 20 }
原文:http://www.cnblogs.com/huangguodong/p/4693039.html