Given an integer K and a range of consecutive numbers [L, R]. The task is to count the numbers from the given range which have digital root as K (1 ≤ K ≤ 9). Digital root is sum of digits of a number until it becomes a single digit number. For example, 256 -> 2 + 5 + 6 = 13 -> 1 + 3 = 4.
Input: L = 10, R = 22, K = 3
12 and 21 are the only numbers from the range whose digit sum is 3.
Input: L = 100, R = 200, K = 5
- First thing is to note that for any number Sum of Digits is equal to Number % 9. If remainder is 0, then sum of digits is 9.
- So if K = 9, then replace K with 0.
- Task, now is to find count of numbers in range L to R with modulo 9 equal to K.
- Divide the entire range into the maximum possible groups of 9 starting with L (TotalRange / 9), since in each range there will be exactly one number with modulo 9 equal to K.
- Loop over rest number of elements from R to R – count of rest elements, and check if any number satisfies the condition.
Below is the implementation of the above approach:
$R – $rem; $i–)
$rem1 = $i % 9;
if ($rem1 == $K)
// Driver code
$L = 10;
$R = 22;
$K = 3;
echo countNumbers($L, $R, $K);
// This code is contributed by Ita_c
- Digital Root (repeated digital sum) of the given large integer
- Sudo Placement[1.7] | Greatest Digital Root
- Print a number containing K digits with digital root D
- Find Nth positive number whose digital root is X
- Smallest root of the equation x^2 + s(x)*x - n = 0, where s(x) is the sum of digits of root x.
- Sum of all even numbers in range L and R
- Sum of Fibonacci Numbers in a range
- Find XOR of numbers from the range [L, R]
- Check whether XOR of all numbers in a given range is even or odd
- Sum of all numbers divisible by 6 in a given range
- Prime numbers in a given range using STL | Set 2
- Count of numbers having only 1 set bit in the range [0, n]
- Sum of all odd natural numbers in range L and R
- Sum of all natural numbers in range L to R
- Count Odd and Even numbers in a range from L to R
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. 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.