Cube Sum Pairs
Posted: 29 Dec, 2020
Difficulty: Easy
You are given a positive integer N, and you have to find the number of ways to represent N as a sum of cubes of two integers(let’s say A and B), such that:
N = A^3 + B^3.
Note:
1. A should be greater than or equal to one (A>=1).
2. B should be greater than or equal to zero (B>=0).
3. (A, B) and (B, A) should be considered different solutions, if A is not equal to B, i.e (A, B) and (B, A) will not be distinct if A=B.
Input Format:
The first line of the input contains an integer T denoting the number of test cases.
The first and only line of each test case consists of a single positive integer N.
Output Format:
For each test case, print an integer that denotes the count of the number of ways of representing N as a sum of cubes of 2 integers (A and B) in a separate line.
Note:
You don't have to print anything, it has already been taken care of. Just Implement the given function.
Constraints:
1 <= T <= 10^3
1 <= N <= 10^8
Time Limit: 1 sec.
Approach 1
- Maintain a counter which will count possible pairs (A, B).
- Iterate over all possible ‘A’ values.
- Possible ‘A’ values are in the range 1 to N.
- For each ‘A’ value iterate over all possible values of ‘B’
- Possible ‘B’ values are in the range 0 to N.
- If ‘A’^3 + ‘B’^3 comes to be N, then increment the counter.
Approach 2
- Maintain a counter which will count the pairs (A, B).
- Iterate over all possible values of ‘A’.
- Possible values of ‘A’ are in the range 1 to N.
- For each value, ‘A’ find the value of N - A^3.
- Check if N - A^3 is positive as well as a perfect cube.
- To check if N - A^3 is a perfect cube or not, follow the following steps:
- Find the cube root of N - A^3 and take the floor value of this cube root.
- Only If the cube of this floored cube root comes out to be equal to N - A^3, then it is a perfect cube.
- If N - A^3 is a perfect cube then we can get a ‘B’ value which is nothing but cubeRoot(N-A^3) and increment the counter.
Approach 3
- Maintain a counter which will count the pairs (A, B).
- Iterate over all valid values of ‘A’.
- Possible values of ‘A’ are in the range 1 to N.
- But out of these values in range 1 to cubeRoot(N), will take us to a valid Pair(A, B).
- Values of ‘A’ above cubeRoot(N) will make N - A^3 negative.
- For each valid value ‘A’ find the value of N - A^3.
- Check if N - A^3 is positive as well as a perfect cube.
- To check if N - A^3 is a perfect cube or not, follow the following steps:
- Find the cube root of N - A^3 and take the floor value of this cube root.
- Only If the cube of this floored cube root comes out to be equal to N - A^3, then it is a perfect cube.
- If N - A^3 is a perfect cube then we can get a ‘B’ value which is nothing but cubeRoot(N-A^3) and increment the counter.