You are given a number ‘N’. Your task is to split this number into 3 positive integers x, y and z, such that their sum is equal to ‘N’ and none of the 3 integers is a multiple of 3.Given that N>=2.

**Examples:**

Input :N = 10

Output :x = 1, y = 2, z = 7

Note that x + y + z = N and x, y & z are not divisible by N.

Input :18

Output :x = 1, y = 1, z = 16

**Approach:**

To split N into 3 numbers we split N as

- If N is divisible by 3, then the numbers x, y, z can be 1, 1 and N-2, respectively.All x, y and z are not divisible by 3. And (1)+(1)+(N-2)=N .
- If N is not divisible by 3 then N-3 will also not be divisible by 3. Therefore, we can have x=1, y=2 and z=N-3.Also, (1)+(2)+(N-3)=N .

## C++

`// CPP program to split a number into three parts such ` `// than none of them is divisible by 3. ` `#include <iostream> ` `using` `namespace` `std; ` ` ` `void` `printThreeParts(` `int` `N) ` `{ ` ` ` `// Print x = 1, y = 1 and z = N - 2 ` ` ` `if` `(N % 3 == 0) ` ` ` `cout << ` `" x = 1, y = 1, z = "` `<< N - 2 << endl; ` ` ` ` ` `// Otherwise, print x = 1, y = 2 and z = N - 3 ` ` ` `else` ` ` `cout << ` `" x = 1, y = 2, z = "` `<< N - 3 << endl; ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `N = 10; ` ` ` `printThreeParts(N); ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java program to split a number into three parts such ` `// than none of them is divisible by 3. ` `import` `java.util.*; ` ` ` `class` `solution ` `{ ` ` ` `static` `void` `printThreeParts(` `int` `N) ` `{ ` ` ` `// Print x = 1, y = 1 and z = N - 2 ` ` ` `if` `(N % ` `3` `== ` `0` `) ` ` ` ` ` `System.out.println(` `"x = 1, y = 1, z = "` `+ (N-` `2` `)); ` ` ` ` ` `// Otherwise, print x = 1, y = 2 and z = N - 3 ` ` ` `else` ` ` `System.out.println(` `" x = 1, y = 2, z = "` `+ (N-` `3` `)); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main(String args[]) ` `{ ` ` ` `int` `N = ` `10` `; ` ` ` `printThreeParts(N); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to split a number into three parts such ` `# than none of them is divisible by 3. ` ` ` `def` `printThreeParts(N) : ` ` ` ` ` `# Print x = 1, y = 1 and z = N - 2 ` ` ` `if` `(N ` `%` `3` `=` `=` `0` `) : ` ` ` `print` `(` `" x = 1, y = 1, z = "` `,N ` `-` `2` `) ` ` ` ` ` `# Otherwise, print x = 1, y = 2 and z = N - 3 ` ` ` `else` `: ` ` ` `print` `(` `" x = 1, y = 2, z = "` `,N ` `-` `3` `) ` ` ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `N ` `=` `10` ` ` `printThreeParts(N) ` ` ` `# This code is contributed by Ryuga ` |

*chevron_right*

*filter_none*

## C#

`// C# program to split a number into three parts such ` `// than none of them is divisible by 3. ` `using` `System; ` ` ` `public` `class` `GFG{ ` ` ` `static` `void` `printThreeParts(` `int` `N) ` `{ ` ` ` `// Print x = 1, y = 1 and z = N - 2 ` ` ` `if` `(N % 3 == 0) ` ` ` `Console.WriteLine(` `" x = 1, y = 1, z = "` `+(N - 2)); ` ` ` ` ` `// Otherwise, print x = 1, y = 2 and z = N - 3 ` ` ` `else` ` ` `Console.WriteLine(` `" x = 1, y = 2, z = "` `+(N - 3)); ` `} ` ` ` `// Driver code ` ` ` `static` `public` `void` `Main (){ ` ` ` `int` `N = 10; ` ` ` `printThreeParts(N); ` ` ` ` ` ` ` `} ` `// This code is contributed by ajit. ` `} ` |

*chevron_right*

*filter_none*

## PHP

`<?php ` `// PHP program to split a number into ` `// three parts such than none of them ` `// is divisible by 3. ` `function` `printThreeParts(` `$N` `) ` `{ ` ` ` `// Print x = 1, y = 1 and z = N - 2 ` ` ` `if` `(` `$N` `% 3 == 0) ` ` ` `echo` `" x = 1, y = 1, z = "` `. ` ` ` `(` `$N` `- 2) . ` `"\n"` `; ` ` ` ` ` `// Otherwise, print x = 1, ` ` ` `// y = 2 and z = N - 3 ` ` ` `else` ` ` `echo` `" x = 1, y = 2, z = "` `. ` ` ` `(` `$N` `- 3) . ` `"\n"` `; ` `} ` ` ` `// Driver code ` `$N` `= 10; ` `printThreeParts(` `$N` `); ` ` ` `// This code is contributed by ita_c ` `?> ` |

*chevron_right*

*filter_none*

**Output:**

x = 1, y = 2, z = 7

**Time Complexity:** **O(1)**

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Split the number into N parts such that difference between the smallest and the largest part is minimum
- Partition a number into two divisible parts
- Divide number into two parts divisible by given numbers
- Possible cuts of a number such that maximum parts are divisible by 3
- Divide N into K unique parts such that gcd of those parts is maximum
- Break the number into three parts
- Divide a number into two parts
- Divide a big number into two parts that differ by k
- Divide a number into two parts such that sum of digits is maximum
- Sum of all second largest divisors after splitting a number into one or more parts
- Break a number such that sum of maximum divisors of all parts is minimum
- Number of ways N can be divided into four parts to construct a rectangle
- Count number of ways to divide a number in 4 parts
- Find the number of ways to divide number into four parts such that a = c and b = d
- Spt function or Smallest Parts Function of a given number
- Split a number as sum of K numbers which are not divisible by K
- Number of ways to split a binary number such that every part is divisible by 2
- Divide N into K parts in the form (X, 2X, ... , KX) for some value of X
- Sum of non-diagonal parts of a square Matrix
- Split the number N by maximizing the count of subparts divisible by K

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.