# Split a number into 3 parts such that none of the parts is divisible by 3

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

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

Input :N = 10Output :x = 1, y = 2, z = 7

Note that x + y + z = N and x, y & z are not divisible by N.Input :18Output :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;` `}` |

## 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);` ` ` `}` `}` |

## 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` |

## 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.` `}` |

## 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` `?>` |

## Javascript

`<script>` `// javascript 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)` ` ` ` ` `document.write(` `"x = 1, y = 1, z = "` `+ (N-2));` ` ` `// Otherwise, print x = 1, y = 2 and z = N - 3` ` ` `else` ` ` `document.write(` `" x = 1, y = 2, z = "` `+ (N-3));` `}` `// Driver code` `var` `N = 10;` `printThreeParts(N);` `// This code contributed by Princi Singh` `</script>` |

**Output:**

x = 1, y = 2, z = 7

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

**Auxiliary Space: O(1)**