- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Find four factors of N with maximum product and sum equal to N - Set-2 in Python

Suppose we have a number N; we have to find factors of N and return only the product of four factors of N such that −

The sum of the four factors is same as N.

The product of the four factors is maximum.

All four factors can be equal to each other to maximize the product.

So, if the input is like N = 60, then the output will be 50625 as all the factors are → 1 2 3 4 5 6 10 12 15 20 30 60 and their product is 50625, as we 15 has been selected four times to make product largest.

To solve this, we will follow these steps −

my_map := a new map

v := a new list, v1 := a new list

for i in range 1 to the ceiling of square root of (n) + 1, do

if n mod i is same as 0, then

insert i at the end of v

if i is not same as integer part of (n / i) and i is not same as 1, then

insert integer part of (n / i) at the end of v

s := size of v

maximum := -1

map1 := an array of size (n + 5) fill this with 0

for i in range 0 to s, do

for j in range i to s, do

if v[i] + v[j] < n , then

insert v[i] + v[j] at the end of v1

map1[v[i] + v[j]] := [v[i], v[j]]

my_map[v[i] + v[j]] := 1

s := size of v1

for i in range 0 to s, do

element := n - (v1[i])

if element in my_map, then

a := map1[v1[i], 0]

b := map1[v1[i], 1]

c := map1[n - v1[i], 0]

d := map1[n - v1[i], 1]

maximum := maximum of a * b * c * d, maximum

if maximum is same as -1, then

display "Not Possible"

otherwise,

display maximum

## Example

Let us see the following implementation to get better understanding −

from math import sqrt, ceil, floor def get_product(n): my_map = dict() v = [] v1 = [] for i in range(1,ceil(sqrt(n)) + 1): if (n % i == 0): v.append(i) if (i != (n // i) and i != 1): v.append(n // i) s = len(v) maximum = -1 map1 = [0]*(n + 5) for i in range(s): for j in range(i, s): if (v[i] + v[j] < n): v1.append(v[i] + v[j]) map1[v[i] + v[j]] =[v[i], v[j]] my_map[v[i] + v[j]] = 1 s = len(v1) for i in range(s): element = n - (v1[i]) if (element in my_map): a = map1[v1[i]][0] b = map1[v1[i]][1] c = map1[n - v1[i]][0] d = map1[n - v1[i]][1] maximum = max(a * b * c * d, maximum) if (maximum == -1): print("Not Possible") else : print("Maximum product", maximum) n = 60 get_product(n)

## Input

60

## Output

Maximum product 50625

- Related Questions & Answers
- Find four factors of N with maximum product and sum equal to N - Set-2 in Python Program
- Find four factors of N with maximum product and sum equal to N - Set-2 in C++
- C++ find four factors of N with maximum product and sum equal to N .
- Find four factors of N with maximum product and sum equal to N in C++
- Find sum of Series with n-th term as n^2 - (n-1)^2 in C++
- Python Program for Find sum of Series with the n-th term as n^2 – (n-1)^2
- Java Program to Find sum of Series with n-th term as n^2 – (n-1)^2
- C/C++ Program to Find sum of Series with n-th term as n power of 2 - (n-1) power of 2
- Find maximum product of digits among numbers less than or equal to N in C++
- C/C++ Program to Find the sum of Series with the n-th term as n^2 – (n-1)^2
- Find N integers with given difference between product and sum in C++
- Program to find sum of 1 + x/2! + x^2/3! +…+x^n/(n+1)! in C++
- Maximum Primes whose sum is equal to given N in C++
- Find two numbers with sum and product both same as N in C++
- Finding n subarrays with equal sum in JavaScript