Find the number of ways to divide number into four parts such that a = c and b = d

Given a number **N**. Find the number of ways to divide a number into four parts(a, b, c, d) such that a = c and b = d and a not equal to b.

**Examples:**

Input :N = 6Output :1Expalantion :four parts are {1, 2, 1, 2}

Input :N = 20Output :4Expalantion :possible ways are {1, 1, 9, 9}, {2, 2, 8, 8}, {3, 3, 7, 7} and {4, 4, 6, 6}.

**Approach :**

If the given **N** is odd the answer is 0, because the sum of four parts will not be even number.

If n is divisible by 4 then answer will be n/4 -1(here a equals to b can be possible so subtract that possibility) otherwise n/4.

Below is the implementation of the above approach :

## C++

`// C++ implementation for above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Function to find the number of ways to divide` `// N into four parts such that a = c and b = d` `int` `possibleways(` `int` `n)` `{` ` ` `if` `(n % 2 == 1)` ` ` `return` `0;` ` ` `else` `if` `(n % 4 == 0)` ` ` `return` `n / 4 - 1;` ` ` `else` ` ` `return` `n / 4;` `}` ` ` `// Driver code` `int` `main()` `{` ` ` `int` `n = 20;` ` ` `cout << possibleways(n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation for above approach` `class` `GFG` `{` ` ` `// Function to find the number of ways to divide` `// N into four parts such that a = c and b = d` `static` `int` `possibleways(` `int` `n)` `{` ` ` `if` `(n % ` `2` `== ` `1` `)` ` ` `return` `0` `;` ` ` `else` `if` `(n % ` `4` `== ` `0` `)` ` ` `return` `n / ` `4` `- ` `1` `;` ` ` `else` ` ` `return` `n / ` `4` `;` `}` ` ` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `n = ` `20` `;` ` ` `System.out.println(possibleways(n));` `}` `}` ` ` `// This code contributed by Rajput-Ji` |

## Python3

`# Python3 implementation for above approach` ` ` `# Function to find the number of ways ` `# to divide N into four parts ` `# such that a = c and b = d` `def` `possibleways(n):` ` ` ` ` `if` `(n ` `%` `2` `=` `=` `1` `):` ` ` `return` `0` `;` ` ` `elif` `(n ` `%` `4` `=` `=` `0` `):` ` ` `return` `n ` `/` `/` `4` `-` `1` `;` ` ` `else` `:` ` ` `return` `n ` `/` `/` `4` `;` ` ` `# Driver code` `n ` `=` `20` `;` `print` `(possibleways(n));` ` ` `# This code is contributed by mits` |

## C#

`// C# implementation for above approach` `class` `GFG` `{` ` ` `// Function to find the number of ways to divide` `// N into four parts such that a = c and b = d` `static` `int` `possibleways(` `int` `n)` `{` ` ` `if` `(n % 2 == 1)` ` ` `return` `0;` ` ` `else` `if` `(n % 4 == 0)` ` ` `return` `n / 4 - 1;` ` ` `else` ` ` `return` `n / 4;` `}` ` ` `// Driver code` `static` `void` `Main()` `{` ` ` `int` `n = 20;` ` ` `System.Console.WriteLine(possibleways(n));` `}` `}` ` ` `// This code is contributed by mits` |

## PHP

`<?php` `// PHP implementation for above approach` ` ` `// Function to find the number of ways to divide` `// N into four parts such that a = c and b = d` `function` `possibleways(` `$n` `)` `{` ` ` `if` `(` `$n` `% 2 == 1)` ` ` `return` `0;` ` ` `else` `if` `(` `$n` `% 4 == 0)` ` ` `return` `$n` `/ 4 - 1;` ` ` `else` ` ` `return` `$n` `/ 4;` `}` ` ` `// Driver code` `$n` `= 20;` `echo` `possibleways(` `$n` `);` ` ` `// This code is contributed by ajit` `?>` |

**Output:**

4