# Triplet with no element divisible by 3 and sum N

Given an integer N greater than 2, the task is to print any combination of a, b and c such that:

• a + b + c = N
• a, b and c are not divisible by 3.

Examples:

```Input: N = 233
Output: 77 77 79

Input: N = 3
Output: 1 1 1
```

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

A naive approach is to use three loops and check for the given condition.

Below is the implementation of the above approach:

## C++

 `// C++ program to print a, b and c ` `// such that a+b+c=N ` `#include ` `using` `namespace` `std; ` ` `  `// Function to print a, b and c ` `void` `printCombination(``int` `n) ` `{ ` ` `  `    ``// first loop ` `    ``for` `(``int` `i = 1; i < n; i++) { ` ` `  `        ``// check for 1st number ` `        ``if` `(i % 3 != 0) { ` ` `  `            ``// second loop ` `            ``for` `(``int` `j = 1; j < n; j++) { ` ` `  `                ``// check for 2nd number ` `                ``if` `(j % 3 != 0) { ` ` `  `                    ``// third loop ` `                    ``for` `(``int` `k = 1; k < n; k++) { ` ` `  `                        ``// Check for 3rd number ` `                        ``if` `(k % 3 != 0 && (i + j + k) == n) { ` `                            ``cout << i << ``" "` `<< j << ``" "` `<< k; ` `                            ``return``; ` `                        ``} ` `                    ``} ` `                ``} ` `            ``} ` `        ``} ` `    ``} ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 233; ` ` `  `    ``printCombination(n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to print a,  ` `// b and c such that a+b+c=N ` `import` `java.io.*; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to print a, b and c ` `static` `void` `printCombination(``int` `n) ` `{ ` `    ``// first loop ` `    ``for` `(``int` `i = ``1``; i < n; i++)  ` `    ``{ ` ` `  `        ``// check for 1st number ` `        ``if` `(i % ``3` `!= ``0``)  ` `        ``{ ` ` `  `            ``// second loop ` `            ``for` `(``int` `j = ``1``; j < n; j++) ` `            ``{ ` ` `  `                ``// check for 2nd number ` `                ``if` `(j % ``3` `!= ``0``)  ` `                ``{ ` ` `  `                    ``// third loop ` `                    ``for` `(``int` `k = ``1``; k < n; k++)  ` `                    ``{ ` ` `  `                        ``// Check for 3rd number ` `                        ``if` `(k % ``3` `!= ``0` `&& (i + j + k) == n)  ` `                        ``{ ` `                            ``System.out.println( i + ``" "` `+  ` `                                                ``j + ``" "` `+ k); ` `                            ``return``; ` `                        ``} ` `                    ``} ` `                ``} ` `            ``} ` `        ``} ` `    ``} ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main (String[] args)  ` `{ ` `    ``int` `n = ``233``; ` `     `  `    ``printCombination(n); ` `} ` `} ` ` `  `// This code is contributed  ` `// by anuj_67. `

## Python3

 `# Python3 program to print a, b  ` `# and c such that a+b+c=N ` ` `  `# Function to print a, b and c ` `def` `printCombination(n): ` ` `  `    ``# first loop ` `    ``for` `i ``in` `range``(``1``, n): ` `     `  `        ``# check for 1st number ` `        ``if` `(i ``%` `3` `!``=` `0``):  ` `             `  `            ``# second loop ` `            ``for` `j ``in` `range``(``1``, n): ` ` `  `                ``# check for 2nd number ` `                ``if` `(j ``%` `3` `!``=` `0``):  ` ` `  `                    ``# third loop ` `                    ``for` `k ``in` `range``(``1``, n): ` ` `  `                        ``# Check for 3rd number ` `                        ``if` `(k ``%` `3` `!``=` `0` `and`  `                           ``(i ``+` `j ``+` `k) ``=``=` `n):  ` `                            ``print``(i, j, k); ` `                            ``return``; ` ` `  `# Driver Code ` `n ``=` `233``; ` ` `  `printCombination(n); ` ` `  `# This code is contributed  ` `# by mits `

## C#

 `// C# program to print a,  ` `// b and c such that a+b+c=N ` `class` `GFG ` `{ ` ` `  `// Function to print a, b and c ` `static` `void` `printCombination(``int` `n) ` `{ ` `    ``// first loop ` `    ``for` `(``int` `i = 1; i < n; i++)  ` `    ``{ ` ` `  `        ``// check for 1st number ` `        ``if` `(i % 3 != 0)  ` `        ``{ ` ` `  `            ``// second loop ` `            ``for` `(``int` `j = 1; j < n; j++) ` `            ``{ ` ` `  `                ``// check for 2nd number ` `                ``if` `(j % 3 != 0)  ` `                ``{ ` ` `  `                    ``// third loop ` `                    ``for` `(``int` `k = 1; k < n; k++)  ` `                    ``{ ` ` `  `                        ``// Check for 3rd number ` `                        ``if` `(k % 3 != 0 && (i + j + k) == n)  ` `                        ``{ ` `                            ``System.Console.WriteLine(i + ``" "` `+  ` `                                                     ``j + ``" "` `+ k); ` `                            ``return``; ` `                        ``} ` `                    ``} ` `                ``} ` `            ``} ` `        ``} ` `    ``} ` `} ` ` `  `// Driver Code ` `static` `void` `Main ()  ` `{ ` `    ``int` `n = 233; ` `     `  `    ``printCombination(n); ` `} ` `} ` ` `  `// This code is contributed  ` `// by mits `

## PHP

 ` `

Output:

```1 2 230
```

Time Complexity: O(n3)

Efficient approach:

1. Consider 1 as one of the three numbers.
2. The other two numbers will be:
• (2, n-3) if n-2 is divisible by 3.
• Otherwise (1, n-2) if n-2 is not divisible by 3.

Below is the implementation of the above approach:

## C++

 `// C++ program to print a, b and c ` `// such that a+b+c=N ` `#include ` `using` `namespace` `std; ` ` `  `// Function to print a, b and c ` `void` `printCombination(``int` `n) ` `{ ` `    ``cout << 1 << ``" "``; ` ` `  `    ``// check if n-2 is divisible ` `    ``// by 3 or not ` `    ``if` `((n - 2) % 3 == 0) ` `        ``cout << 2 << ``" "` `<< n - 3; ` `    ``else` `        ``cout << 1 << ``" "` `<< n - 2; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 233; ` ` `  `    ``printCombination(n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to print a, b  ` `// and c such that a+b+c=N ` `class` `GFG ` `{ ` `// Function to print a, b and c ` `static` `void` `printCombination(``int` `n) ` `{ ` `    ``System.out.print(``1` `+ ``" "``); ` ` `  `    ``// check if n-2 is divisible ` `    ``// by 3 or not ` `    ``if` `((n - ``2``) % ``3` `== ``0``) ` `        ``System.out.print(``2` `+ ``" "` `+ (n - ``3``)); ` `    ``else` `        ``System.out.print(``1` `+ ``" "` `+ (n - ``2``)); ` `} ` ` `  `// Driver Code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `n = ``233``; ` ` `  `    ``printCombination(n); ` `} ` `} ` ` `  `// This code is contributed by mits `

## Python3

 `# Python3 program to print a, b and c ` `# such that a+b+c=N ` ` `  `# Function to print a, b and c ` `def` `printCombination(n): ` `    ``print``(``"1 "``,end``=``""); ` ` `  `    ``# check if n-2 is divisible ` `    ``# by 3 or not ` `    ``if` `((n ``-` `2``) ``%` `3` `=``=` `0``): ` `        ``print``(``"2"``,n ``-` `3``,end``=``""); ` `    ``else``: ` `        ``print``(``"1"``,(n ``-` `2``),end``=``""); ` ` `  `# Driver code ` `if` `__name__``=``=``'__main__'``: ` `    ``n ``=` `233``; ` ` `  `    ``printCombination(n); ` ` `  `# This code is contributed by mits `

## C#

 `// C# program to print a, b  ` `// and c such that a+b+c=N ` ` `  `class` `GFG ` `{ ` `// Function to print a, b and c ` `static` `void` `printCombination(``int` `n) ` `{ ` `    ``System.Console.Write(1 + ``" "``); ` ` `  `    ``// check if n-2 is divisible ` `    ``// by 3 or not ` `    ``if` `((n - 2) % 3 == 0) ` `        ``System.Console.Write(2 + ``" "` `+ (n - 3)); ` `    ``else` `        ``System.Console.Write(1 + ``" "` `+ (n - 2)); ` `} ` ` `  `// Driver Code ` `static` `void` `Main() ` `{ ` `    ``int` `n = 233; ` ` `  `    ``printCombination(n); ` `} ` `} ` ` `  `// This code is contributed by mits `

## PHP

 ` `

Output:

```1 2 230
```

Time Complexity: O(1)

My Personal Notes arrow_drop_up Striver(underscore)79 at Codechef and codeforces D

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.