Python – Sort a List by Factor count

When you need to sort a list by the number of factors each element has, you can use a custom function with Python's sort() method. This technique uses list comprehension and the modulus operator to count factors efficiently.

Understanding Factor Count

A factor of a number is any integer that divides the number evenly (remainder is 0). For example, the factors of 12 are: 1, 2, 3, 4, 6, and 12.

Example

Here's how to sort a list by factor count ?

def factor_count(element):
    return len([element for index in range(1, element) if element % index == 0])

my_list = [121, 1120, 13540, 221, 1400]

print("The list is :")
print(my_list)

my_list.sort(key=factor_count)

print("The result is :")
print(my_list)
The list is :
[121, 1120, 13540, 221, 1400]
The result is :
[121, 221, 13540, 1120, 1400]

How It Works

The factor_count() function works by:

  • Using list comprehension to iterate through numbers from 1 to element-1

  • Checking if each number divides the element evenly using modulus (%)

  • Counting all factors using len()

  • The sort() method uses this count as the sorting key

Factor Analysis

Let's see why the numbers are sorted in this order:

  • 121 = 11² ? factors: 1, 11 ? count: 2

  • 221 = 13 × 17 ? factors: 1, 13, 17 ? count: 3

  • 13540 has more factors ? count: 4+

  • 1120 and 1400 have the most factors

Alternative Implementation

Here's an optimized version that includes the number itself as a factor ?

def factor_count_optimized(num):
    return len([i for i in range(1, num + 1) if num % i == 0])

numbers = [12, 15, 6, 24, 8]
print("Original:", numbers)

numbers.sort(key=factor_count_optimized)
print("Sorted by factor count:", numbers)

# Show factor counts
for num in numbers:
    factors = [i for i in range(1, num + 1) if num % i == 0]
    print(f"{num}: {factors} (count: {len(factors)})")
Original: [12, 15, 6, 24, 8]
Sorted by factor count: [6, 8, 15, 12, 24]
6: [1, 2, 3, 6] (count: 4)
8: [1, 2, 4, 8] (count: 4)
15: [1, 3, 5, 15] (count: 4)
12: [1, 2, 3, 4, 6, 12] (count: 6)
24: [1, 2, 3, 4, 6, 8, 12, 24] (count: 8)

Conclusion

Sorting by factor count uses a custom key function that counts divisors. The sort() method arranges elements from lowest to highest factor count, making it useful for mathematical analysis and number theory applications.

---
Updated on: 2026-03-26T01:23:36+05:30

479 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements