# Count pairs in array such that one element is power of another

• Last Updated : 21 Dec, 2021

Given an array arr[], the task is to count the pairs in the array such that one element is the power of another in each pair.
Examples:

```Input: arr[] = {16, 2, 3, 9}
Output: 2
The 2 pairs are (16, 2) and (3, 9)

Input: arr[] = {2, 3, 5, 7}
Output: 0```

Approach:

• After taking the array as input, first we need to find out all the possible pairs in that array.
• So, find out the pairs from the array
• Then for each pair, check whether an element is a power of another. If it is, then increase the required count by one.
• When all the pairs have been checked, return or print the count of such pair.

Below is the implementation of the above approach:

## C++

 `// C++ program to count pairs in array` `// such that one element is power of another`   `#include ` `using` `namespace` `std;`   `// Function to check if given number number y` `// is power of x` `bool` `isPower(``int` `x, ``int` `y)` `{` `    ``// log function to calculate value` `    ``int` `res1 = ``log``(y) / ``log``(x);` `    ``double` `res2 = ``log``(y) / ``log``(x);`   `    ``// compare to the result1` `    ``// or result2 both are equal` `    ``return` `(res1 == res2);` `}`   `// Function to find pairs from array` `int` `countPower(``int` `arr[], ``int` `n)` `{` `    ``int` `res = 0;`   `    ``// Iterate through all pairs` `    ``for` `(``int` `i = 0; i < n; i++)` `        ``for` `(``int` `j = i + 1; j < n; j++)`   `            ``// Increment count if one is` `            ``// the power of other` `            ``if` `(isPower(arr[i], arr[j])` `                ``|| isPower(arr[j], arr[i]))` `                ``res++;`   `    ``return` `res;` `}`   `// Driver code` `int` `main()` `{` `    ``int` `a[] = { 16, 2, 3, 9 };` `    ``int` `n = ``sizeof``(a) / ``sizeof``(a[0]);` `    ``cout << countPower(a, n);` `    ``return` `0;` `}`

## Java

 `// Java program to count pairs in array ` `// such that one element is power of another`   `class` `GFG ` `{`   `    ``// Function to check if given number number y ` `    ``// is power of x ` `    ``static` `boolean` `isPower(``int` `x, ``int` `y) ` `    ``{ ` `        ``// log function to calculate value ` `        ``int` `res1 = (``int``)(Math.log(y) / Math.log(x)); ` `        ``double` `res2 = Math.log(y) / Math.log(x); ` `    `  `        ``// compare to the result1 ` `        ``// or result2 both are equal ` `        ``return` `(res1 == res2); ` `    ``} ` `    `  `    ``// Function to find pairs from array ` `    ``static` `int` `countPower(``int` `arr[], ``int` `n) ` `    ``{ ` `        ``int` `res = ``0``; ` `    `  `        ``// Iterate through all pairs ` `        ``for` `(``int` `i = ``0``; i < n; i++) ` `            ``for` `(``int` `j = i + ``1``; j < n; j++) ` `    `  `                ``// Increment count if one is ` `                ``// the power of other ` `                ``if` `(isPower(arr[i], arr[j]) ` `                    ``|| isPower(arr[j], arr[i])) ` `                    ``res++; ` `    `  `        ``return` `res; ` `    ``} ` `    `  `    ``// Driver code ` `    ``public` `static` `void` `main (String[] args)` `    ``{ ` `        ``int` `a[] = { ``16``, ``2``, ``3``, ``9` `}; ` `        ``int` `n =a.length; ` `        ``System.out.println(countPower(a, n)); ` `    ``} `   `}`   `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 program to count pairs in array ` `# such that one element is power of another `   `from` `math ``import` `log`   `# Function to check if given number number y ` `# is power of x ` `def` `isPower(x, y) : `   `    ``# log function to calculate value ` `    ``res1 ``=` `log(y) ``/``/` `log(x);` `    ``res2 ``=` `log(y) ``/` `log(x);` `    `  `    ``# compare to the result1 ` `    ``# or result2 both are equal ` `    ``return` `(res1 ``=``=` `res2); `   `# Function to find pairs from array ` `def` `countPower( arr, n) :` `    `  `    ``res ``=` `0``;` `    `  `    ``# Iterate through all pairs` `    ``for` `i ``in` `range``(n) :` `        ``for` `j ``in` `range``(i ``+` `1``, n) :` `            ``# Increment count if one is` `            ``# the power of other` `            ``if` `isPower(arr[i], arr[j]) ``or` `isPower(arr[j], arr[i]) :` `                ``res ``+``=` `1``;`   `    ``return` `res; `   `# Driver code ` `if` `__name__ ``=``=` `"__main__"` `:` `    `  `    ``a ``=` `[ ``16``, ``2``, ``3``, ``9` `]; ` `    ``n ``=` `len``(a); ` `    `  `    ``print``(countPower(a, n)); `   `# This code is contributed by AnkitRai01`

## C#

 `// C# program to count pairs in array ` `// such that one element is power of another`   `using` `System;`   `public` `class` `GFG ` `{`   `    ``// Function to check if given number number y ` `    ``// is power of x ` `    ``static` `bool` `isPower(``int` `x, ``int` `y) ` `    ``{ ` `        ``// log function to calculate value ` `        ``int` `res1 = (``int``)(Math.Log(y) / Math.Log(x)); ` `        ``double` `res2 = Math.Log(y) / Math.Log(x); ` `    `  `        ``// compare to the result1 ` `        ``// or result2 both are equal ` `        ``return` `(res1 == res2); ` `    ``} ` `    `  `    ``// Function to find pairs from array ` `    ``static` `int` `countPower(``int` `[]arr, ``int` `n) ` `    ``{ ` `        ``int` `res = 0; ` `    `  `        ``// Iterate through all pairs ` `        ``for` `(``int` `i = 0; i < n; i++) ` `            ``for` `(``int` `j = i + 1; j < n; j++) ` `    `  `                ``// Increment count if one is ` `                ``// the power of other ` `                ``if` `(isPower(arr[i], arr[j]) ` `                    ``|| isPower(arr[j], arr[i])) ` `                    ``res++; ` `    `  `        ``return` `res; ` `    ``} ` `    `  `    ``// Driver code ` `    ``public` `static` `void` `Main ()` `    ``{ ` `        ``int` `[]a = { 16, 2, 3, 9 }; ` `        ``int` `n =a.Length; ` `        ``Console.WriteLine(countPower(a, n)); ` `    ``} `   `}`   `// This code is contributed by AnkitRai01`

## Javascript

 ``

Output:

`2`

Time Complexity: O(n2)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :