51 nod 1283 最小周长

1283 最小周长
题目来源:  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
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <string.h>
using namespace std;
int a[100005];

int main(){
	long long int S, C, i, j;
	while(~scanf("%I64d", &S)){
		int k = 0;
		for(i = 1; i <= (int)sqrt(S) + 1; ++i){
			if(S % i == 0){
				a[k++] = ((i + S / i) * 2);
			}
		}
		sort(a, a + k);
		cout << a[0] << endl;
		
	}
	return 0;
}







你可能感兴趣的:(51,nod,一级算法题)