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

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:
To split N into 3 numbers we split N as

1. 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 .
2. 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 ` `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

 ` `

Output:

```x = 1, y = 2, z = 7
```

Time Complexity: O(1)

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.