In: Computer Science
Given an integer named area which represents the area of a rectangle, write a function minPerimeter that calculates the minimum possible perimeter of the given rectangle, and prints the perimeter and the side lengths needed to achieve that minimum. The length of the sides of the rectangle are integer numbers. For example, given the integer area = 30, possible perimeters and side-lengths 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 Thus, your function should print only the last line, since that is the minimum perimeter. Some example outputs:
>>>minPerimeter(30)
22 where rectangle sides are 5 and 6.
Java Program:
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter Area: ");
int area = sc.nextInt();
minPerimeter(area);
}
public static void minPerimeter(int area) {
int side1 = 0;
int side2 = area;
int perimeter = 0;
for (side1 = 1; side1 <= side2; side1++) {
if (side1 * side2 == area){
perimeter = 2 * (side1 + side2);
}
if (area % (side1+1) == 0)
{
side2 = area / (side1+1);
}
}
System.out.println("Perimeter: " + perimeter);
System.out.println("Side 1: " + side1);
System.out.println("Side 2: " + side2);
}
}
Output:
Python Program:
def minPerimeter(area):
i = 0
n = area
perimeter = 0
listt = []
for i in range(1, n+1):
if (i*n) == area:
perimeter = 2 * (i + n)
listt.append(perimeter)
if area % (i+1) == 0:
n = area // (i + 1)
print("Perimeter: ", min(listt))
minPerimeter(30)
Thumbs Up Please !!!