Open In App

Find two numbers A and B of X and Y digits respectively with GCD having Z digits

Last Updated : 12 Dec, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given three positive integers X, Y, and Z. The task is to find two numbers A and B of X and Y digits respectively with their GCD having Z digits. where Z ≤ min(X, Y). If there are multiple possible answers print any of them.

Examples:

Input: X = 2, Y = 3, Z = 1
Output: A = 11, B = 100 
Explanation: A and B contains 2 and 3 digits respectively and GCD(A, B) is 1 which has 1 digit.

Input: X = 2, Y = 2, Z = 2
Output: A = 13, B = 26

 

Approach: The task can be solved using some observations. Calculate A equals 10x-1, B as 10y-1, and C as 10z-1. Increment A with C to achieve GCD with Z digits. Follow the below steps to solve the problem:

  • Initialize 3 variables A, B, C with 1.
  • Append Z -1 zeroes with C.
  • Append X – 1 zeroes in last of A.
  • Append Y – 1 zero in last of B.
  • Increment A by the value of C.
  • Print A and B as the answer.

Below is the implementation of the above approach:

C++




// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the desired numbers
void findTwoNumbers(int X, int Y, int Z)
{
 
    int A, B, C;
    A = B = C = 1;
 
    for (int i = 1; i <= X - 1; i++) {
        A = A * 10;
    }
    for (int i = 1; i <= Y - 1; i++) {
        B = B * 10;
    }
    for (int i = 1; i <= Z - 1; i++) {
        C = C * 10;
    }
 
    A = A + C;
 
    cout << "A = " << A << " B = " << B;
}
 
// Driver Code
int main()
{
    int X = 2, Y = 3, Z = 1;
    findTwoNumbers(X, Y, Z);
    return 0;
}


Java




// Java program for the above approach
import java.io.*;
public class GFG {
 
  // Function to find the desired numbers
  static void findTwoNumbers(int X, int Y, int Z) {
 
    int A, B, C;
    A = B = C = 1;
 
    for (int i = 1; i <= X - 1; i++) {
      A = A * 10;
    }
    for (int i = 1; i <= Y - 1; i++) {
      B = B * 10;
    }
    for (int i = 1; i <= Z - 1; i++) {
      C = C * 10;
    }
 
    A = A + C;
 
    System.out.println("A = " + A + " B = " + B);
  }
 
  // Driver Code
  public static void main(String args[]) {
    int X = 2, Y = 3, Z = 1;
    findTwoNumbers(X, Y, Z);
  }
}
 
// This code is contributed by Saurabh Jaiswal


Python3




# python3 program for the above approach
 
# Function to find the desired numbers
def findTwoNumbers(X, Y, Z):
    A = B = C = 1
 
    for i in range(1, X):
        A = A * 10
 
    for i in range(1, Y):
        B = B * 10
 
    for i in range(1, Z):
        C = C * 10
 
    A = A + C
 
    print(f"A = {A} B = {B}")
 
# Driver Code
if __name__ == "__main__":
 
    X, Y, Z = 2, 3, 1
    findTwoNumbers(X, Y, Z)
 
    # This code is contributed by rakeshsahni


C#




// C# program for the above approach
using System;
public class GFG
{
   
// Function to find the desired numbers
static void findTwoNumbers(int X, int Y, int Z)
{
 
    int A, B, C;
    A = B = C = 1;
 
    for (int i = 1; i <= X - 1; i++) {
        A = A * 10;
    }
    for (int i = 1; i <= Y - 1; i++) {
        B = B * 10;
    }
    for (int i = 1; i <= Z - 1; i++) {
        C = C * 10;
    }
 
    A = A + C;
 
    Console.Write("A = " + A + " B = " + B);
}
 
// Driver Code
public static void Main()
{
    int X = 2, Y = 3, Z = 1;
    findTwoNumbers(X, Y, Z);
}
}
 
// This code is contributed by Samim Hossain Mondal.


Javascript




<script>
    // JavaScript code for the above approach
 
 
    // Function to find the desired numbers
    function findTwoNumbers(X, Y, Z) {
 
        let A, B, C;
        A = B = C = 1;
 
        for (let i = 1; i <= X - 1; i++) {
            A = A * 10;
        }
        for (let i = 1; i <= Y - 1; i++) {
            B = B * 10;
        }
        for (let i = 1; i <= Z - 1; i++) {
            C = C * 10;
        }
 
        A = A + C;
 
        document.write("A = " + A + " B = " + B);
    }
 
    // Driver Code
 
    let X = 2, Y = 3, Z = 1;
    findTwoNumbers(X, Y, Z);
 
   // This code is contributed by Potta Lokesh
</script>


Output

A = 11 B = 100

Time Complexity: O(max(X, Y))
Auxiliary Space: O(1)

 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads