题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
一个矩形的面积为S,已知该矩形的边长都是整数,求所有满足条件的矩形中,周长的最小值。例如:S = 24,那么有{1 24} {2 12} {3 8} {4 6}这4种矩形,其中{4 6}的周长最小,为20。
Input
输入1个数S(1 <= S <= 10^9)。
Output
输出最小周长。
Input示例
24
Output示例
20
其实只要两个数相差越小周长就越小.
1 #include <bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int n; 5 scanf("%d",&n); 6 int x,y; 7 x=y=sqrt(n); 8 while(x*y!=n){ 9 if(x*y>n) 10 x--; 11 else if(x*y<n) 12 y++; 13 else 14 break; 15 } 16 printf("%d ",2*(x+y)); 17 return 0; 18 }