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

• Difficulty Level : Easy
• Last Updated : 15 Nov, 2021

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 codeint 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 codepublic 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 codeif __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.}



Javascript


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

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up