# Find a triplet (X, Y, Z) such that all are divisible by A, exactly one is divisible by both A and B, and X + Y = Z

• Last Updated : 09 Feb, 2022

Given two integers A and B, the task is to find a triplet (X, Y, Z) such that all of them are divisible by A, exactly one of them is divisible by both A and B, and X + Y = Z.

Example:

Input: A = 5, B = 3
Output: 10 50 60
Explanation: For the triplet (10, 50, 60), all of them are divisible by 5, 60 is divisible by both 5 and 3, and 10 + 50 = 60. Therefore, (10, 50, 60) is valid triplet. Other possible triplets are (5, 25, 30), (5, 15, 20)

Input: A = 7, B = 11
Output: 28 154 182

Approach:  The given problem is an observation-based problem that can be solved using basic mathematics. It can be observed that the triplet (A, A * B, A * (B + 1)), satisfies all of the given conditions except when the value of B is 1. In that case, it can be seen that the condition that exactly one of them should be divisible by both A and B will always be violated. So, if B = 1, no valid triplet exists, otherwise print (A, A * B, A * (B + 1)).

Below is the implementation of the above approach:

## C++

 `// C++ program of the above approach` `#include ` `using` `namespace` `std;`   `// Function to find a triplet (X, Y, Z)` `// such that all of them are divisible` `// by A, exactly one of them is divisible` `// by both A and B, and X + Y = Z` `void` `findTriplet(``int` `A, ``int` `B)` `{` `    ``// If the value of B is 1` `    ``if` `(B == 1) {` `        ``cout << -1;` `        ``return``;` `    ``}`   `    ``// Print Answer` `    ``cout << A << ``" "` `<< A * B` `         ``<< ``" "` `<< A * (B + 1);` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `A = 5;` `    ``int` `B = 3;` `    ``findTriplet(A, B);`   `    ``return` `0;` `}`

## Java

 `// Java program for the above approach` `import` `java.io.*;` `import` `java.lang.*;` `import` `java.util.*;`   `class` `GFG {`   `  ``// Function to find a triplet (X, Y, Z)` `  ``// such that all of them are divisible` `  ``// by A, exactly one of them is divisible` `  ``// by both A and B, and X + Y = Z` `  ``static` `void` `findTriplet(``int` `A, ``int` `B)` `  ``{`   `    ``// If the value of B is 1` `    ``if` `(B == ``1``) {` `      ``System.out.println(-``1``);` `      ``return``;` `    ``}`   `    ``// Print Answer` `    ``System.out.println(A + ``" "` `+ A * B + ``" "` `+  A * (B + ``1``));` `  ``}`   `  ``// Driver Code` `  ``public` `static` `void` `main (String[] args) {` `    ``int` `A = ``5``;` `    ``int` `B = ``3``;` `    ``findTriplet(A, B);` `  ``}` `}`   `// This code is contributed by hrithikgarg03188.`

## Python3

 `# Python code for the above approach`   `# Function to find a triplet (X, Y, Z)` `# such that all of them are divisible` `# by A, exactly one of them is divisible` `# by both A and B, and X + Y = Z` `def` `findTriplet(A, B):`   `    ``# If the value of B is 1` `    ``if` `(B ``=``=` `1``):` `        ``print``(``-``1``)` `        ``return`   `    ``# Print Answer` `    ``print``(f``"{A} {A * B} {A * (B + 1)}"``)`   `# Driver Code` `A ``=` `5` `B ``=` `3` `findTriplet(A, B)`   `# This code is contributed by Saurabh Jaiswal`

## C#

 `// C# program of the above approach` `using` `System;` `class` `GFG` `{`   `  ``// Function to find a triplet (X, Y, Z)` `  ``// such that all of them are divisible` `  ``// by A, exactly one of them is divisible` `  ``// by both A and B, and X + Y = Z` `  ``static` `void` `findTriplet(``int` `A, ``int` `B)` `  ``{`   `    ``// If the value of B is 1` `    ``if` `(B == 1) {` `      ``Console.Write(-1);` `      ``return``;` `    ``}`   `    ``// Print Answer` `    ``Console.Write(A + ``" "` `+ A * B + ``" "` `+ A * (B + 1));` `  ``}`   `  ``// Driver Code` `  ``public` `static` `int` `Main()` `  ``{` `    ``int` `A = 5;` `    ``int` `B = 3;` `    ``findTriplet(A, B);` `    ``return` `0;` `  ``}` `}`   `// This code is contributed by Taranpreet`

## Javascript

 ``

Output

`5 15 20`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :