Given two positive integers N and K, the task is to find the sum of the quotients of division of N by powers of K which are less than or equal to N.
Input: N = 10, K = 2
Dividing 10 by 1 (= 20). Quotient = 10. Therefore, sum = 10.
Dividing 10 by 2 (= 21). Quotient = 5. Therefore, sum = 15.
Divide 10 by 4 (= 22). Quotient = 2. Therefore, sum = 17.
Divide 10 by 8 (= 23). Quotient = 1. Therefore, sum = 18.
Input: N = 5, K=2
Dividing 5 by 1 (= 20). Quotient = 5. Therefore, sum = 5.
Divide 5 by 2 (= 21). Quotient = 2. Therefore, sum = 7.
Divide 5 by 4 (= 22). Quotient = 1. Therefore, sum = 8.
Approach: The idea is to iterate a loop while the current power of K is less than or equal to N and keep adding the quotient to the sum in each iteration.
Follow the steps below to solve the problem:
- Initialize a variable, say sum, to store the required sum.
- Initialize a variable, say i = 1 (= K0) to store the powers of K.
- Iterate until the value of i ≤ N, and perform the following operations:
- Store the quotient obtained on dividing N by i in a variable, say X.
- Add the value of X to ans and multiply i by K to obtain the next power of K.
- Print the value of the sum as the result.
Below is the implementation of the above approach:
Time Complexity: O(logK(N))
Auxiliary Space: O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.