Find the integers that doesnot ends with T1 or T2 when squared and added X
Last Updated :
30 Aug, 2022
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>
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
C++ Basics
Core Concepts
OOP in C++
Standard Template Library(STL)
Practice & Problems