# Number of ways to divide a N elements equally into group of at least 2

• Last Updated : 27 Jan, 2022

Given an integer N denoting the number of elements, the task is to find the number of ways to divide these elements equally into groups such that each group has at least 2 elements.

Examples:

Input: N = 2
Output: 1
Explanation: There can be only one group.

Input: N = 10
Output: 3
Explanation: There are 3 ways to divide elements:
One group having all the 10 elements.
Two groups where each group has 5 elements.
Five groups where each group has 2 elements.

Approach: The above problem can be solved using the below-given brute force approach. In every iteration of the loop, i represents the number of groups. If N is completely divisible by i, hence, the elements can be equally divided among groups. Follow the steps below to solve the problem:

• Declare variable ways and initialize it by 0.
• Iterate over the range [1, N/2] using the variable i and perform the following tasks:
• Check if N is completely divisible by i.
• If yes, then increment ways by 1.
• After performing the above steps, print the value of ways as the answer.

Below is the implementation of the above approach:

## C++

 `// C++ program for the given approach``#include ``using` `namespace` `std;` `// Function to find the number of ways``int` `numberofWays(``int` `N)``{``    ``// Variable to store the number of ways``    ``int` `ways = 0;``    ``int` `i;` `    ``// Loop to find total number of ways``    ``for` `(i = 1; i <= N / 2; i++) {``        ``if` `(N % i == 0)``            ``ways++;``    ``}` `    ``// Returning the number of ways``    ``return` `ways;``}` `// Driver Code``int` `main()``{` `    ``// Declaring and initialising N``    ``int` `N = 10;` `    ``// Function call``    ``int` `ans = numberofWays(N);` `    ``// Displaying the answer on screen``    ``cout << ans;``    ``return` `0;``}`

## Java

 `// Java program for the above approach``import` `java.io.*;``import` `java.lang.*;``import` `java.util.*;` `class` `GFG {` `  ``// Function to find the number of ways``  ``static` `int` `numberofWays(``int` `N)``  ``{``    ``// Variable to store the number of ways``    ``int` `ways = ``0``;``    ``int` `i;` `    ``// Loop to find total number of ways``    ``for` `(i = ``1``; i <= N / ``2``; i++) {``      ``if` `(N % i == ``0``)``        ``ways++;``    ``}` `    ``// Returning the number of ways``    ``return` `ways;``  ``}` `  ``public` `static` `void` `main (String[] args)``  ``{` `    ``// Declaring and initialising N``    ``int` `N = ``10``;` `    ``// Function call``    ``int` `ans = numberofWays(N);` `    ``// Displaying the answer on screen``    ``System.out.print(ans);``  ``}``}` `// This code is contributed by hrithikgarg03188`

## Python3

 `# Python code for the above approach` `# Function to find the number of ways``def` `numberofWays(N):` `    ``# Variable to store the number of ways``    ``ways ``=` `0``;``    ``i ``=` `None` `    ``# Loop to find total number of ways``    ``for` `i ``in` `range``(``1``, (N ``/``/` `2``) ``+` `1``):``        ``if` `(N ``%` `i ``=``=` `0``):``            ``ways ``+``=` `1` `    ``# Returning the number of ways``    ``return` `ways;` `# Driver Code` `# Declaring and initialising N``N ``=` `10``;` `# Function call``ans ``=` `numberofWays(N);` `# Displaying the answer on screen``print``(ans);` `# This code is contributed by Saurabh Jaiswal`

## C#

 `// C# program for the above approach``using` `System;` `class` `GFG {` `  ``// Function to find the number of ways``  ``static` `int` `numberofWays(``int` `N)``  ``{``    ``// Variable to store the number of ways``    ``int` `ways = 0;``    ``int` `i;` `    ``// Loop to find total number of ways``    ``for` `(i = 1; i <= N / 2; i++) {``      ``if` `(N % i == 0)``        ``ways++;``    ``}` `    ``// Returning the number of ways``    ``return` `ways;``  ``}` `  ``public` `static` `void` `Main(``string``[] args)``  ``{` `    ``// Declaring and initialising N``    ``int` `N = 10;` `    ``// Function call``    ``int` `ans = numberofWays(N);` `    ``// Displaying the answer on screen``    ``Console.WriteLine(ans);``  ``}``}` `// This code is contributed by ukasp.`

## Javascript

 ``
Output
`3`

Time Complexity: O(N)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up