Given a range, the task is to find the count of the numbers in the given range such that the sum of its digit is equal to the sum of all its prime factors digits sum.
Input: l = 2, r = 10 Output: 5 2, 3, 4, 5 and 7 are such numbers Input: l = 15, r = 22 Output: 3 17, 19 and 22 are such numbers As, 17 and 19 are already prime. Prime Factors of 22 = 2 * 11 i.e For 22, Sum of digits is 2+2 = 4 For 2 * 11, Sum of digits is 2 + 1 + 1 = 4
Approach: An efficient solution is to modify Sieve of Eratosthenes such that for each non-prime number it stores smallest prime factor(prefactor).
- Preprocess to find the smallest prime factorfor all the numbers between 2 and MAXN. This can be done by breaking up the number into its prime factors in constant time because for each number if it is a prime, it has no prefactor.
- Otherwise, we can break it up to into a prime factor and the other part of the number which may or may not be prime.
- And repeat this process of extracting factors till it becomes a prime.
- Then check if the digits of that number is equal to the digits of prime factors by adding th digits of smallest prime factor i.e.
Digits_Sum of SPF[n] + Digits_Sum of (n / SPF[n])
- Now make prefix sum array that counts how many valid numbers are there up to a number N. For each query, print:
ans[R] – ans[L-1]
Below is the implementation of above approach:
Valid numbers in the range 2 3 are 2 Valid numbers in the range 2 10 are 5
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.
- Find sum of a number and its maximum prime factor
- Sum of largest prime factor of each number less than equal to n
- Count all the numbers less than 10^6 whose minimum prime factor is N
- Count all prime numbers in a given range whose sum of digits is also prime
- Exactly n distinct prime factor numbers from a to b
- Least prime factor of numbers till n
- Find N numbers such that a number and its reverse are divisible by sum of its digits
- Print numbers such that no two consecutive numbers are co-prime and every three consecutive numbers are co-prime
- Queries on the sum of prime factor counts in a range
- Sum of Maximum and Minimum prime factor of every number in the Array
- Print prime numbers with prime sum of digits in an array
- Sum of prime numbers without odd prime digits
- k-th prime factor of a given number
- Nearest element with at-least one common prime factor
- Count of subarrays whose products don't have any repeating prime factor
- Find largest prime factor of a number
- N-th prime factor of a given number
- Prime Factor
- Count of distinct power of prime factor of N
- Count all the numbers in a range with smallest factor as K
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.