Related Articles
Count numbers from range whose prime factors are only 2 and 3
• Last Updated : 11 Dec, 2018

Given two positive integers L and R, the task is to count the elements from the range [L, R] whose prime factors are only 2 and 3.

Examples:

Input: L = 1, R = 10
Output: 6
2 = 2
3 = 3
4 = 2 * 2
6 = 2 * 3
8 = 2 * 2 * 2
9 = 3 * 3

Input: L = 100, R = 200
Output: 5

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Start a loop from L to R and for every element num:

• While num is divisible by 2, divide it by 2.
• While num is divisible by 3, divide it by 3.
• If num = 1 then increment the count as num has only 2 and 3 as its prime factors.

Print the count in the end.

Below is the implementation of the above approach:

## C++

 `// C++ program to count the numbers within a range ` `// whose prime factors are only 2 and 3 ` `#include ` `using` `namespace` `std; ` ` `  `// Function to count the number within a range ` `// whose prime factors are only 2 and 3 ` `int` `findTwoThreePrime(``int` `l, ``int` `r) ` `{ ` `    ``// Start with 2 so that 1 doesn't get counted ` `    ``if` `(l == 1) ` `        ``l++; ` ` `  `    ``int` `count = 0; ` ` `  `    ``for` `(``int` `i = l; i <= r; i++) { ` `        ``int` `num = i; ` ` `  `        ``// While num is divisible by 2, divide it by 2 ` `        ``while` `(num % 2 == 0) ` `            ``num /= 2; ` ` `  `        ``// While num is divisible by 3, divide it by 3 ` `        ``while` `(num % 3 == 0) ` `            ``num /= 3; ` ` `  `        ``// If num got reduced to 1 then it has ` `        ``// only 2 and 3 as prime factors ` `        ``if` `(num == 1) ` `            ``count++; ` `    ``} ` ` `  `    ``return` `count; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `l = 1, r = 10; ` `    ``cout << findTwoThreePrime(l, r); ` `    ``return` `0; ` `} `

## Java

 `//Java program to count the numbers within a range  ` `// whose prime factors are only 2 and 3  ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` `     `  `// Function to count the number within a range  ` `// whose prime factors are only 2 and 3  ` `static` `int` `findTwoThreePrime(``int` `l, ``int` `r)  ` `{  ` `    ``// Start with 2 so that 1 doesn't get counted  ` `    ``if` `(l == ``1``)  ` `        ``l++;  ` ` `  `    ``int` `count = ``0``;  ` ` `  `    ``for` `(``int` `i = l; i <= r; i++) {  ` `        ``int` `num = i;  ` ` `  `        ``// While num is divisible by 2, divide it by 2  ` `        ``while` `(num % ``2` `== ``0``)  ` `            ``num /= ``2``;  ` ` `  `        ``// While num is divisible by 3, divide it by 3  ` `        ``while` `(num % ``3` `== ``0``)  ` `            ``num /= ``3``;  ` ` `  `        ``// If num got reduced to 1 then it has  ` `        ``// only 2 and 3 as prime factors  ` `        ``if` `(num == ``1``)  ` `            ``count++;  ` `    ``}  ` ` `  `    ``return` `count;  ` `}  ` ` `  `// Driver code  ` `    ``public` `static` `void` `main (String[] args) { ` ` `  `        ``int` `l = ``1``, r = ``10``;  ` `        ``System.out.println (findTwoThreePrime(l, r));  ` `    ``} ` `//This code is contributed by ajit     ` `} `

## Python3

 `# Python3 program to count the numbers  ` `# within a range whose prime factors  ` `# are only 2 and 3 ` ` `  `# Function to count the number within  ` `# a range whose prime factors are only  ` `# 2 and 3 ` `def` `findTwoThreePrime(l, r) : ` ` `  `    ``# Start with 2 so that 1  ` `    ``# doesn't get counted ` `    ``if` `(l ``=``=` `1``) : ` `        ``l ``+``=` `1` ` `  `    ``count ``=` `0` ` `  `    ``for` `i ``in` `range``(l, r ``+` `1``) : ` `        ``num ``=` `i ` ` `  `        ``# While num is divisible by 2,  ` `        ``# divide it by 2 ` `        ``while` `(num ``%` `2` `=``=` `0``) : ` `            ``num ``/``/``=` `2``; ` ` `  `        ``# While num is divisible by 3,  ` `        ``# divide it by 3 ` `        ``while` `(num ``%` `3` `=``=` `0``) : ` `            ``num ``/``/``=` `3` ` `  `        ``# If num got reduced to 1 then it has ` `        ``# only 2 and 3 as prime factors ` `        ``if` `(num ``=``=` `1``) : ` `            ``count ``+``=` `1` ` `  `    ``return` `count ` ` `  `# Driver code ` `if` `__name__ ``=``=` `"__main__"` `: ` ` `  `    ``l ``=` `1` `    ``r ``=` `10` `     `  `    ``print``(findTwoThreePrime(l, r)) ` `     `  `# This code is contributed by Ryuga `

## C#

 `// C# program to count the numbers  ` `// within a range whose prime factors  ` `// are only 2 and 3  ` `using` `System; ` ` `  `class` `GFG ` `{ ` `         `  `// Function to count the number  ` `// within a range whose prime ` `// factors are only 2 and 3  ` `static` `int` `findTwoThreePrime(``int` `l, ``int` `r)  ` `{  ` `    ``// Start with 2 so that 1  ` `    ``// doesn't get counted  ` `    ``if` `(l == 1)  ` `        ``l++;  ` ` `  `    ``int` `count = 0;  ` ` `  `    ``for` `(``int` `i = l; i <= r; i++)  ` `    ``{  ` `        ``int` `num = i;  ` ` `  `        ``// While num is divisible by 2, ` `        ``// divide it by 2  ` `        ``while` `(num % 2 == 0)  ` `            ``num /= 2;  ` ` `  `        ``// While num is divisible by 3,  ` `        ``// divide it by 3  ` `        ``while` `(num % 3 == 0)  ` `            ``num /= 3;  ` ` `  `        ``// If num got reduced to 1 then it   ` `        ``// has only 2 and 3 as prime factors  ` `        ``if` `(num == 1)  ` `            ``count++;  ` `    ``}  ` `    ``return` `count;  ` `}  ` ` `  `// Driver code  ` `static` `public` `void` `Main () ` `{ ` `    ``int` `l = 1, r = 10;  ` `    ``Console.WriteLine(findTwoThreePrime(l, r));  ` `} ` `} ` ` `  `// This code is contributed by akt_mit  `

## PHP

 ` `

Output:

```6
``` My Personal Notes arrow_drop_up
Recommended Articles
Page :