How to divide an unknown integer into a given number of even parts using JavaScript?

When dividing an integer into equal parts, you may need to distribute the remainder across some parts to ensure all values are used. This can be achieved using the modular operator and array manipulation.

How It Works

The algorithm divides the integer by the number of parts to get a base value. If there's a remainder, it distributes the extra values by adding 1 to some parts.

Example

function divideInteger(value, parts) {
    var baseValue;
    var remainder = value % parts;
    
    if (remainder == 0) {
        // No remainder, all parts are equal
        baseValue = value / parts;
        return Array(parts).fill(baseValue);
    } else {
        // Distribute remainder across first few parts
        baseValue = Math.floor(value / parts);
        var result = Array(parts).fill(baseValue);
        
        // Add 1 to the first 'remainder' parts
        for (var i = 0; i < remainder; i++) {
            result[i] = result[i] + 1;
        }
        
        return result.reverse(); // Optional: put larger values at end
    }
}

// Test with 50 divided into 8 parts
var arrayValues = divideInteger(50, 8);
console.log("50 divided into 8 parts:", arrayValues);

// Test with perfect division
var perfectDivision = divideInteger(20, 4);
console.log("20 divided into 4 parts:", perfectDivision);
50 divided into 8 parts: [
  6, 6, 6, 6,
  6, 6, 7, 7
]
20 divided into 4 parts: [ 5, 5, 5, 5 ]

Key Points

The function ensures that:

  • All parts sum up to the original integer
  • The difference between any two parts is at most 1
  • Remainder is distributed evenly across parts

Alternative Implementation

function divideIntegerSimple(value, parts) {
    var baseValue = Math.floor(value / parts);
    var remainder = value % parts;
    var result = [];
    
    for (var i = 0; i < parts; i++) {
        result.push(baseValue + (i < remainder ? 1 : 0));
    }
    
    return result;
}

console.log("Alternative method:", divideIntegerSimple(50, 8));
Alternative method: [ 7, 7, 6, 6, 6, 6, 6, 6 ]

Conclusion

Use the modular operator to handle remainders when dividing integers into equal parts. This ensures fair distribution with minimal difference between parts.

Updated on: 2026-03-15T23:18:59+05:30

449 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements