Given an integer N, the task is to find the count of numbers from 1 to N which are divisible by all the numbers from 2 to 10.
Examples:
Input: N = 3000
Output: 1
2520 is the only number below 3000 which is divisible by all the numbers from 2 to 10.
Input: N = 2000
Output: 0
Approach: Let’s factorize numbers from 2 to 10.
2 = 2
3 = 3
4 = 22
5 = 5
6 = 2 * 3
7 = 7
8 = 23
9 = 32
10 = 2 * 5
If a number is divisible by all the numbers from 2 to 10, its factorization should contain 2 at least in the power of 3, 3 at least in the power of 2, 5 and 7 at least in the power of 1. So it can be written as:
x * 23 * 32 * 5 * 7 i.e. x * 2520.
So any number divisible by 2520 is divisible by all the numbers from 2 to 10. So, the count of such numbers is N / 2520.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int countNumbers( int n)
{
return (n / 2520);
}
int main()
{
int n = 3000;
cout << countNumbers(n);
return 0;
}
|
Java
class GFG
{
static int countNumbers( int n)
{
return (n / 2520 );
}
public static void main(String args[])
{
int n = 3000 ;
System.out.println(countNumbers(n));
}
}
|
Python3
def countNumbers(n):
return n / / 2520
n = 3000
print (countNumbers(n))
|
C#
using System;
class GFG
{
static int countNumbers( int n)
{
return (n / 2520);
}
public static void Main(String []args)
{
int n = 3000;
Console.WriteLine(countNumbers(n));
}
}
|
PHP
<?php
function countNumbers( $n )
{
return (int)( $n / 2520);
}
$n = 3000;
echo (countNumbers( $n ));
?>
|
Javascript
<script>
function countNumbers(n)
{
return (n / 2520);
}
var n = 3000;
document.write(Math.round(countNumbers(n)));
</script>
|
Time Complexity: O(1), since there is a basic arithmetic operation that takes constant time.
Auxiliary Space: O(1), since no extra space has been taken.