# Python Program for Minimum Perimeter of n Blocks

In the previous article, we have discussed Python Program To Find Area of a Circular Sector
Given n blocks of size 1*1, the task is to find the minimum perimeter of the grid made by these given n blocks in python.

Examples:

Example1:

Input:

Given n value = 6

Output:

The minimum perimeter of the grid made by the given n blocks{ 6 } =  11

Example2:

Input:

Given n value = 9

Output:

The minimum perimeter of the grid made by the given n blocks{ 9 } =  12

## Program for Minimum Perimeter of n Blocks in Python

Below are the ways to find the minimum perimeter of the grid made by these given n blocks in python:

### Method #1: Using Mathematical Approach (Static Input)

Approach:

• Import math module using the import keyword.
• Give the n value as static input and store it in a variable.
• Create a function to say Minimum_perimtr() which takes the given n value as an argument and returns the minimum perimeter of the grid made by these given n blocks.
• Calculate the square root of the given n value using the math.sqrt() function and store it in a variable say sqrt_val.
• Multiply the above result with itself and store it in another variable.
• Check if the given n value is a perfect square by using the if conditional statement.
• If it is true, then return the value of above sqrt_val multiplied by 4.
• Else calculate the number of rows by dividing the given n value by sqrt_val.
• Add the above sqrt_val with the number of rows obtained and multiply the result by 2 to get the perimeter of the rectangular grid.
• Store it in another variable.
• Check whether there are any blocks left using the if conditional statement.
• If it is true, then add 2 to the above-obtained perimeter of the rectangular grid and store it in the same variable.
• Return the minimum perimeter of the grid made by the given n blocks.
• Pass the given n value as an argument to the Minimum_perimtr() function, convert it into an integer using the int() function and store it in another variable.
• Print the above result which is the minimum perimeter of the grid made by the given n blocks.
• The Exit of the Program.

Below is the implementation:

# Import math module using the import keyword.
import math

# Create a function to say Minimum_perimtr() which takes the given n value as an
# argument and returns the minimum perimeter of the grid made by these given n blocks.

def Minimum_perimtr(gvn_n_val):
# Calculate the square root of the given n value using the math.sqrt() function
# and store it in a variable say sqrt_val.
sqrt_val = math.sqrt(gvn_n_val)
# Multiply the above result with itself and store it in another variable.
sqre_rslt = sqrt_val * sqrt_val

# Check if the given n value is a perfect square by using the if
# conditional statement.
if (sqre_rslt == gvn_n_val):
# If it is true, then return the value of above sqrt_val multiplied by 4.
return sqrt_val * 4
else:
# Else calculate the number of rows by dividing the given n value by sqrt_val.
no_of_rows = gvn_n_val / sqrt_val

# Add the above sqrt_val with the number of rows obtained and multiply the result
# by 2 to get the perimeter of the rectangular grid.
# Store it in another variable.
rslt_perimetr = 2 * (sqrt_val + no_of_rows)

# Check whether there are any blocks left using the if conditional statement.
if (gvn_n_val % sqrt_val != 0):
# If it is true, then add 2 to the above-obtained perimeter of the rectangular
# grid and store it in the same variable.
rslt_perimetr += 2
# Return the minimum perimeter of the grid made by the given n blocks.
return rslt_perimetr

# Give the n value as static input and store it in a variable.
gvn_n_val = 6
# Pass the given n value as an argument to the Minimum_perimtr() function, convert
# it into an integer using the int() function and store it in another variable.
fnl_rslt = int(Minimum_perimtr(gvn_n_val))
# Print the above result which is the minimum perimeter of the grid made by the
# given n blocks.
print(
"The minimum perimeter of the grid made by the given n blocks{", gvn_n_val, "} = ", fnl_rslt)

#include <iostream>
#include<math.h>
using namespace std;
int Minimum_perimtr ( int gvn_n_val ) {
int sqrt_val = sqrt ( gvn_n_val );
int sqre_rslt = sqrt_val * sqrt_val;
if (  sqre_rslt == gvn_n_val  ) {
return sqrt_val * 4;
}
else {
int no_of_rows = gvn_n_val / sqrt_val;
int rslt_perimetr = 2 * ( sqrt_val + no_of_rows );
if ( ( gvn_n_val % sqrt_val != 0 )  ) {
rslt_perimetr += 2;
}
return rslt_perimetr;
}
}
int main() {
int gvn_n_val = 6;
int fnl_rslt = ( int ) Minimum_perimtr ( gvn_n_val );
cout << "The minimum perimeter of the grid made by the given n blocks{" << gvn_n_val << "} = " << fnl_rslt << endl;
return 0;
}



Output:

The minimum perimeter of the grid made by the given n blocks{ 6 } =  11

### Method #2: Using Mathematical Approach (User Input)

Approach:

• Import math module using the import keyword.
• Give the n value as user input using the int(input()) function input and store it in a variable.
• Create a function to say Minimum_perimtr() which takes the given n value as an argument and returns the minimum perimeter of the grid made by these given n blocks.
• Calculate the square root of the given n value using the math.sqrt() function and store it in a variable say sqrt_val.
• Multiply the above result with itself and store it in another variable.
• Check if the given n value is a perfect square by using the if conditional statement.
• If it is true, then return the value of above sqrt_val multiplied by 4.
• Else calculate the number of rows by dividing the given n value by sqrt_val.
• Add the above sqrt_val with the number of rows obtained and multiply the result by 2 to get the perimeter of the rectangular grid.
• Store it in another variable.
• Check whether there are any blocks left using the if conditional statement.
• If it is true, then add 2 to the above-obtained perimeter of the rectangular grid and store it in the same variable.
• Return the minimum perimeter of the grid made by the given n blocks.
• Pass the given n value as an argument to the Minimum_perimtr() function, convert it into an integer using the int() function and store it in another variable.
• Print the above result which is the minimum perimeter of the grid made by the given n blocks.
• The Exit of the Program.

Below is the implementation:

# Import math module using the import keyword.
import math

# Create a function to say Minimum_perimtr() which takes the given n value as an
# argument and returns the minimum perimeter of the grid made by these given n blocks.

def Minimum_perimtr(gvn_n_val):
# Calculate the square root of the given n value using the math.sqrt() function
# and store it in a variable say sqrt_val.
sqrt_val = math.sqrt(gvn_n_val)
# Multiply the above result with itself and store it in another variable.
sqre_rslt = sqrt_val * sqrt_val

# Check if the given n value is a perfect square by using the if
# conditional statement.
if (sqre_rslt == gvn_n_val):
# If it is true, then return the value of above sqrt_val multiplied by 4.
return sqrt_val * 4
else:
# Else calculate the number of rows by dividing the given n value by sqrt_val.
no_of_rows = gvn_n_val / sqrt_val

# Add the above sqrt_val with the number of rows obtained and multiply the result
# by 2 to get the perimeter of the rectangular grid.
# Store it in another variable.
rslt_perimetr = 2 * (sqrt_val + no_of_rows)

# Check whether there are any blocks left using the if conditional statement.
if (gvn_n_val % sqrt_val != 0):
# If it is true, then add 2 to the above-obtained perimeter of the rectangular
# grid and store it in the same variable.
rslt_perimetr += 2
# Return the minimum perimeter of the grid made by the given n blocks.
return rslt_perimetr

# Give the n value as user input using the int(input()) function input and
# store it in a variable.
gvn_n_val = int(input("Enter some random number = "))
# Pass the given n value as an argument to the Minimum_perimtr() function, convert
# it into an integer using the int() function and store it in another variable.
fnl_rslt = int(Minimum_perimtr(gvn_n_val))
# Print the above result which is the minimum perimeter of the grid made by the
# given n blocks.
print(
"The minimum perimeter of the grid made by the given n blocks{", gvn_n_val, "} = ", fnl_rslt)


Output:

Enter some random number = 9
The minimum perimeter of the grid made by the given n blocks{ 9 } = 12



If you are learning Python then the Python Programming Example is for you and gives you a thorough description of concepts for beginners, experienced programmers.