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> |
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.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!