# Count of matrices (of different orders) with given number of elements

Given a number N denotes the total number of elements in a matrix, the task is to print all possible order of matrix. An order is a pair (m, n) of integers where m is number of rows and n is number of columns. For example, if the number of elements is 8 then all possible orders are:
(1, 8), (2, 4), (4, 2), (8, 1).
Examples:

Input: N = 8
Output: (1, 2) (2, 4) (4, 2) (8, 1)
Input: N = 100
Output:
(1, 100) (2, 50) (4, 25) (5, 20) (10, 10) (20, 5) (25, 4) (50, 2) (100, 1)

Approach:
A matrix is said to be of order m x n if it has m rows and n columns. The total number of elements in a matrix is equal to (m*n). So we start from 1 and check one by one if it divides N(the total number of elements). If it divides, it will be one possible order.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach``#include ``using` `namespace` `std;` `// Function to print all possible order``void` `printAllOrder(``int` `n)``{``    ``// total number of elements in a matrix ``    ``// of order m * n is equal (m*n)``    ``// where m is number of rows and n is ``    ``// number of columns``    ``for` `(``int` `i = 1; i <= n; i++) {` `        ``// if n is divisible by i then i``        ``// and n/i will be the one``        ``// possible order of the matrix``        ``if` `(n % i == 0) {` `            ``// print the given format``            ``cout << i << ``" "` `<< n / i << endl;``        ``}``    ``}``}` `// Driver code``int` `main()``{``    ``int` `n = 10;``    ``printAllOrder(n);``    ``return` `0;``}`

## Java

 `// Java implementation of the above approach`  `class` `GFG``    ``{``    ``// Function to print all possible order``    ``static` `void` `printAllOrder(``int` `n)``    ``{``        ``// total number of elements in a matrix ``        ``// of order m * n is equal (m*n)``        ``// where m is number of rows and n is ``        ``// number of columns``        ``for` `(``int` `i = ``1``; i <= n; i++) {``    ` `            ``// if n is divisible by i then i``            ``// and n/i will be the one``            ``// possible order of the matrix``            ``if` `(n % i == ``0``) {``    ` `                ``// print the given format``                ``System.out.println( i + ``" "` `+ n / i );``            ``}``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main(String []args)``    ``{``        ``int` `n = ``10``;``        ``printAllOrder(n);``        ` `    ``}` `}`  `// This code is contributed by ihritik`

## Python

 `# Python implementation of the above approach` `# Function to print all possible order``def` `printAllOrder(n):` `    ``# total number of elements in a matrix ``    ``# of order m * n is equal (m*n)``    ``# where m is number of rows and n is ``    ``# number of columns``    ``for` `i ``in` `range``(``1``,n``+``1``):` `        ``# if n is divisible by i then i``        ``# and n/i will be the one``        ``# possible order of the matrix``        ``if` `(n ``%` `i ``=``=` `0``) :` `            ``# print the given format``            ``print``( i ,n ``/``/` `i )``        ` `    `   `# Driver code``n ``=` `10``printAllOrder(n)`  `# This code is contributed by ihritik`

## C#

 `// C# implementation of the above approach` `using` `System;``class` `GFG``    ``{``    ``// Function to print all possible order``    ``static` `void` `printAllOrder(``int` `n)``    ``{``        ``// total number of elements in a matrix ``        ``// of order m * n is equal (m*n)``        ``// where m is number of rows and n is ``        ``// number of columns``        ``for` `(``int` `i = 1; i <= n; i++) {``    ` `            ``// if n is divisible by i then i``            ``// and n/i will be the one``            ``// possible order of the matrix``            ``if` `(n % i == 0) {``    ` `                ``// print the given format``                ``Console.WriteLine( i + ``" "` `+ n / i );``            ``}``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main()``    ``{``        ``int` `n = 10;``        ``printAllOrder(n);``        ` `    ``}` `}` `// This code is contributed by ihritik`

## PHP

 ``

## Javascript

 ``

Output:
```1 10
2 5
5 2
10 1```

Time Complexity: O(n)

Auxiliary Space: O(1)

Previous
Next