Count of matrices (of different orders) with given number of elements - GeeksforGeeks

13 May, 2021
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++
Java
Python
C#
PHP
Javascript
// C++ implementation of the above approach#include <iostream>using namespace std; // Function to print all possible ordervoid 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 codeint main(){    int n = 10;    printAllOrder(n);    return 0;}
// 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 implementation of the above approach # Function to print all possible orderdef 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 coden = 10printAllOrder(n)  # This code is contributed by ihritik
// 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// PHP implementation of the above approach // Function to print all possible orderfunction 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 = 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            echo $i, " ", ($n / $i), "\n";        }    }} // Driver code$n = 10;printAllOrder($n); // This code is contributed by Ryuga?>
<script>// Java Script implementation of the above approach      // Function to print all possible order    function 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 (let 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                document.write( i + " " + n / i+"<br>" );            }        }    }         // Driver code             let n = 10;        printAllOrder(n);              // This code is contributed by sravan</script>
1 10
2 5
5 2
10 1
 
Time Complexity: O(n)
Auxiliary Space: O(1)
ihritik
ankthon
subham348
sravankumar8128
Combinatorial
Matrix
Matrix
Combinatorial
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Count ways to reach the nth stair using step 1, 2 or 3
Combinational Sum
Count of subsets with sum equal to X
Python program to get all subsets of given size of a set
Print all possible strings of length k that can be formed from a set of n characters
Matrix Chain Multiplication | DP-8
Program to find largest element in an array
Divide and Conquer | Set 5 (Strassen's Matrix Multiplication)
Sudoku | Backtracking-7
Rat in a Maze | Backtracking-2