Given an integer X. The task is to find and return the array containing of powers of 2’s and the xor of the array is X.
Input: X = 20
Output: 16 4
Input: X = 15
Output: 1 2 4 8
Approach: The answer lies in the binary representation of the number X.
Since in the power of 2, there is only one set bit. If there are two distinct powers of 2’s present then the xor will be the addition of both the numbers.
Similarly, if xor of the whole array will be taken then it should be equal to X and that will be the binary representation of that number.
Since there is a distinct set bit in every power of 2’s, the xor and the sum of the elements of the array will be the same.
Below is the implementation of the above approach:
1 2 4 8
- Smallest power of 2 which is greater than or equal to sum of array elements
- Check if any permutation of N equals any power of K
- Sum of elements in 1st array such that number of elements less than or equal to them in 2nd array is maximum
- Minimum element whose n-th power is greater than product of an array of size n
- Count of pairs in an array such that the highest power of 2 that divides their product is 1
- Find the sum of power of bit count raised to the power B
- Rearrange array elements such that Bitwise AND of first N - 1 elements is equal to last element
- Minimum sum of the elements of an array after subtracting smaller elements from larger
- Check if given number is a power of d where d is a power of 2
- Find power of power under mod of a prime
- Compute power of power k times % m
- Generate an array of K elements such that sum of elements is N and the condition a[i] < a[i+1] <= 2*a[i] is met | Set 2
- Find elements of array using XOR of consecutive elements
- Find minimum value to assign all array elements so that array product becomes greater
- Maximize the median of the given array after adding K elements to the same array
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.