-
(코딜리티) Lesson 10. [Prime and composite numbers] : MinPerimeterRectangle - pythonAlgorithm/코딜리티 2021. 2. 4. 18:41
문제 : app.codility.com/programmers/lessons/10-prime_and_composite_numbers/min_perimeter_rectangle/
문제 내용
양수 N이 주어질 때, N을 A*B로 나타낸 경우에 2*(A+B)가 최소인 값을 return하시오.
예를 들어, N = 30인 경우
(A,B) : (1, 30) = 62
(A,B) : (2, 15) = 34
(A,B) : (3, 10) = 26
(A,B) : (5, 6) = 22
제한 사항
- N은 1~1,000,000,000
코드
import math def solution(N): # for문을 N의 제곱근까지만 돌 수 있도록 함 sq = int(math.sqrt(N)) for i in range(1, sq+1): r = N%i if r == 0: a = i b = N//i return 2*(a+b)
해설
쉬운 문제로 조금만 생각하시면 쉽게 푸실 수 있을 것이라 생각합니다.
'Algorithm > 코딜리티' 카테고리의 다른 글
댓글