Open In App

Find the integers that doesnot ends with T1 or T2 when squared and added X

Last Updated : 30 Aug, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an array of N integers. Given two single digit numbers T1 and T2 and a number X. The task is to find out the integers among them that doesnot ends with either T1 or T2 when they are squared and X is added to them. If there exists no such integer, print -1.
Examples: 
 

Input: N = 4, arr[] = {3, 1, 4, 7} X = 10, T1 = 5, T2 = 6 
Output: 19 11 59 
Explanation : 
The modified value of the 3 is 19 (3^2 + 10). 
The modified value of the 1 is 11 (1^2 + 10). 
The modified value of the 4 is 26 (4^2 + 10). 
The modified value of the 7 is 59 (7^2 + 10). 
The modified values which do not end with 5 or 6 
are 19, 11 and 59
Hence the output is 19 11 59.


Input: N = 4, arr[] = {2, 18, 22, 8} X = 2, T1 = 5, T2 = 6 
Output: -1 
Explanation: 
The modified value of the 2 is 6 (2^2 + 2). 
The modified value of the 18 is 326 (18^2 + 2). 
The modified value of the 22 is 486 (22^2 + 2). 
The modified value of the 8 is 66 (8^2 + 2). 
As, there are no modified values 
which do not end with 5 or 6
Hence the output is -1


Approach: 
 

  • Initialize a Boolean variable flag as true.
  • Traverse through the elements in the array a[n].
  • Store the sum of X and the square of a[i] in a variable temp.
  • Check if the last digit in temp is neither T1 nor T2.
  • IF yes then print the value in temp and change the flag to false.
  • After traversing through all the elements in the array if the flag is true then print -1.


Below is the implementation of the above approach: 
 

C++
// C++ program to find the integers
// that ends with either T1 or T2
// when squared and added X

#include <bits/stdc++.h>
using namespace std;

// Function to print the elements
// Not ending with T1 or T2
void findIntegers(int n, int a[],
                   int x, int t1, int t2)
{

    // Flag to check if none of the elements
    // Do not end with t1 or t2
    bool flag = true;

    // Traverse through all the elements
    for (int i = 0; i < n; i++) {

        // Temporary variable to store the value
        int temp = pow(a[i], 2) + x;

        // If the last digit is neither t1
        // nor t2 then
        if (temp % 10 != t1 && temp % 10 != t2) {

            // Print the number
            cout << temp << " ";

            // Set the flag as False
            flag = false;
        }
    }

    // If none of the elements
    // meets the specification
    if (flag)
        cout << "-1";
}

// Driver Code
int main()
{
    // Test case 1
    int N = 4, X = 10, T1 = 5, T2 = 6;
    int a[N] = { 3, 1, 4, 7 };

    // Call the function
    findIntegers(N, a, X, T1, T2);
    cout << endl;

    // Test case 2
    N = 4, X = 2, T1 = 5, T2 = 6;
    int b[N] = { 2, 18, 22, 8 };

    // Call the function
    findIntegers(N, b, X, T1, T2);

    return 0;
}
Java
// Java program to find the integers 
// that ends with either T1 or T2 
// when squared and added X 
class GFG 
{

    // Function to print the elements 
    // Not ending with T1 or T2 
    static void findIntegers(int n, int a[], 
                             int x, int t1, int t2) 
    { 
    
        // Flag to check if none of the elements 
        // Do not end with t1 or t2 
        boolean flag = true; 
    
        // Traverse through all the elements 
        for (int i = 0; i < n; i++) 
        { 
    
            // Temporary variable to store the value 
            int temp = (int)Math.pow(a[i], 2) + x; 
    
            // If the last digit is neither t1 
            // nor t2 then 
            if (temp % 10 != t1 && temp % 10 != t2) 
            { 
    
                // Print the number 
                System.out.print(temp + " "); 
    
                // Set the flag as False 
                flag = false; 
            } 
        } 
    
        // If none of the elements 
        // meets the specification 
        if (flag)
        {
            System.out.println();
            System.out.print("-1"); 
        }
    } 
    
    // Driver Code 
    public static void main(String args[]) 
    { 
        // Test case 1 
        int N = 4;
        int X = 10;
        int T1 = 5; 
        int T2 = 6; 
        int a[] = { 3, 1, 4, 7 }; 
    
        // Call the function 
        findIntegers(N, a, X, T1, T2); 
    
        // Test case 2 
        N = 4; X = 2; T1 = 5; T2 = 6; 
        int b[] = { 2, 18, 22, 8 }; 
    
        // Call the function 
        findIntegers(N, b, X, T1, T2); 
    } 
}

// This code is contributed by AnkitRai01
Python3
# Python3 program to find the integers 
# that ends with either T1 or T2 
# when squared and added X 

# Function to print the elements 
# Not ending with T1 or T2 
def findIntegers(n, a, x, t1, t2): 

    # Flag to check if none of the elements 
    # Do not end with t1 or t2 
    flag = True

    # Traverse through all the elements 
    for i in range(n): 

        # Temporary variable to store the value 
        temp = pow(a[i], 2) + x 

        # If the last digit is neither t1 
        # nor t2 then 
        if(temp % 10 != t1 and 
           temp % 10 != t2): 

            # Print the number 
            print(temp, end = " ") 

            # Set the flag as False 
            flag = False

    # If none of the elements 
    # meets the specification 
    if flag: 
        print(-1) 

# Driver Code 

# Test case 1 
N , X , T1 , T2 = 4 , 10 , 5 , 6
a = [ 3, 1, 4, 7 ] 

# Call the function 
findIntegers(N, a, X, T1, T2); 
print() 

# Test case 2 
N , X , T1 , T2 = 4 , 2 , 5 , 6
b = [ 2, 18, 22, 8 ]
    
# Call the function 
findIntegers(N, b, X, T1, T2)

# This code is contributed by divyamohan123
C#
// C# program to find the integers 
// that ends with either T1 or T2 
// when squared and added X 
using System;
    
class GFG 
{

    // Function to print the elements 
    // Not ending with T1 or T2 
    static void findIntegers(int n, int []a, 
                             int x, int t1, int t2) 
    { 
    
        // Flag to check if none of the elements 
        // Do not end with t1 or t2 
        bool flag = true; 
    
        // Traverse through all the elements 
        for (int i = 0; i < n; i++) 
        { 
    
            // Temporary variable to store the value 
            int temp = (int)Math.Pow(a[i], 2) + x; 
    
            // If the last digit is neither t1 
            // nor t2 then 
            if (temp % 10 != t1 && 
                temp % 10 != t2) 
            { 
    
                // Print the number 
                Console.Write(temp + " "); 
    
                // Set the flag as False 
                flag = false; 
            } 
        } 
    
        // If none of the elements 
        // meets the specification 
        if (flag)
        {
            Console.WriteLine();
            Console.Write("-1"); 
        }
    } 
    
    // Driver Code 
    public static void Main(String []args) 
    { 
        // Test case 1 
        int N = 4;
        int X = 10;
        int T1 = 5; 
        int T2 = 6; 
        int []a = { 3, 1, 4, 7 }; 
    
        // Call the function 
        findIntegers(N, a, X, T1, T2); 
    
        // Test case 2 
        N = 4; X = 2; T1 = 5; T2 = 6; 
        int []b = { 2, 18, 22, 8 }; 
    
        // Call the function 
        findIntegers(N, b, X, T1, T2); 
    } 
}

// This code is contributed by 29AjayKumar
JavaScript
<script>
// Javascript program to find the integers
// that ends with either T1 or T2
// when squared and added X

// Function to print the elements
// Not ending with T1 or T2
function findIntegers(n, a, x, t1, t2)
{

    // Flag to check if none of the elements
    // Do not end with t1 or t2
    let flag = true;

    // Traverse through all the elements
    for (let i = 0; i < n; i++) {

        // Temporary variable to store the value
        let temp = Math.pow(a[i], 2) + x;

        // If the last digit is neither t1
        // nor t2 then
        if (temp % 10 != t1 && temp % 10 != t2) {

            // Print the number
            document.write(temp + " ");

            // Set the flag as False
            flag = false;
        }
    }

    // If none of the elements
    // meets the specification
    if (flag)
        document.write("-1");
}

// Driver Code
    // Test case 1
    let N = 4, X = 10, T1 = 5, T2 = 6;
    let a = [ 3, 1, 4, 7 ];

    // Call the function
    findIntegers(N, a, X, T1, T2);
    document.write("<br>");

    // Test case 2
    N = 4, X = 2, T1 = 5, T2 = 6;
    let b = [ 2, 18, 22, 8 ];

    // Call the function
    findIntegers(N, b, X, T1, T2);

</script>

Output: 
19 11 59 
-1

 

Time Complexity: O(N), where N is the size of the given array.
Auxiliary Space: O(1) as no extra space is being used.


Explore