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 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)**

## Recommended Posts:

- Split the number into N parts such that difference between the smallest and the largest part is minimum
- Divide number into two parts divisible by given numbers
- Possible cuts of a number such that maximum parts are divisible by 3
- Break the number into three parts
- Partition a number into two divisble 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
- Break a number such that sum of maximum divisors of all parts is minimum
- Count number of ways to divide a number in 4 parts
- Partiton N into M parts such that difference between Max and Min part is smallest
- Check if an array of 1s and 2s can be divided into 2 parts with equal sum
- Divide an isosceles triangle in two parts with ratio of areas as n:m
- Minimum Cuts can be made in the Chessboard such that it is not divided into 2 parts
- Minimum cuts required to divide the Circle into equal parts
- Split the array into odd number of segments of odd lengths