 Open in App
Not now

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

• Difficulty Level : Easy
• Last Updated : 24 Jun, 2022

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

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

 ``

## Javascript

 ``

Output:

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

Time Complexity: O(1), since there is no loop or recursion.

Auxiliary Space: O(1), since no extra space has been taken.

My Personal Notes arrow_drop_up