美文网首页
Codility 10.2 MinPerimeterRectan

Codility 10.2 MinPerimeterRectan

作者: 波洛的汽车电子世界 | 来源:发表于2019-08-23 02:00 被阅读0次

Find the minimal perimeter of any rectangle whose area equals N.

Task description
An integer N is given, representing the area of some rectangle.

The area of a rectangle whose sides are of length A and B is A * B, and the perimeter is 2 * (A + B).

The goal is to find the minimal perimeter of any rectangle whose area equals N. The sides of this rectangle should be only integers.

For example, given integer N = 30, rectangles of area 30 are:

(1, 30), with a perimeter of 62,
(2, 15), with a perimeter of 34,
(3, 10), with a perimeter of 26,
(5, 6), with a perimeter of 22.
Write a function:

def solution(N)

that, given an integer N, returns the minimal perimeter of any rectangle whose area is exactly equal to N.

For example, given an integer N = 30, the function should return 22, as explained above.

Write an efficient algorithm for the following assumptions:

N is an integer within the range [1..1,000,000,000].

思路:和10.1一样

def solution(N):
    # write your code in Python 3.6
  
    i = 1
    num = 0
    min_peri = (N+1)*2
    while(i*i<=N):
        if (N%i ==0):
            peri = (N//i + i) *2
        min_peri = min(peri,min_peri)
        i+=1
    return min_peri

相关文章

网友评论

      本文标题:Codility 10.2 MinPerimeterRectan

      本文链接:https://www.haomeiwen.com/subject/tdvasctx.html