Given a number N and a number K. The task is to find the number of divisors of N which are divisible by K. Here K is a number always less than or equal to √(N)
Examples:
Input: N = 12, K = 3
Output: 3
Input: N = 8, K = 2
Output: 3
Simple Approach: A simple approach is to check all the numbers from 1 to N and check whether any number is a divisor of N and is divisible by K. Count such numbers less than N which satisfies both the conditions.
Below is the implementation of the above approach:
// C++ program to count number of divisors // of N which are divisible by K #include <iostream> using namespace std;
// Function to count number of divisors // of N which are divisible by K int countDivisors( int n, int k)
{ // Variable to store
// count of divisors
int count = 0, i;
// Traverse from 1 to n
for (i = 1; i <= n; i++) {
// increase the count if both
// the conditions are satisfied
if (n % i == 0 && i % k == 0) {
count++;
}
}
return count;
} // Driver code int main()
{ int n = 12, k = 3;
cout << countDivisors(n, k);
return 0;
} |
// Java program to count number of divisors // of N which are divisible by K import java.io.*;
class GFG {
// Function to count number of divisors // of N which are divisible by K static int countDivisors( int n, int k)
{ // Variable to store
// count of divisors
int count = 0 , i;
// Traverse from 1 to n
for (i = 1 ; i <= n; i++) {
// increase the count if both
// the conditions are satisfied
if (n % i == 0 && i % k == 0 ) {
count++;
}
}
return count;
} // Driver code public static void main (String[] args) {
int n = 12 , k = 3 ;
System.out.println(countDivisors(n, k));
}
} // This code is contributed by shashank.. |
# Python program to count number # of divisors of N which are # divisible by K # Function to count number of divisors # of N which are divisible by K def countDivisors(n, k) :
# Variable to store
# count of divisors
count = 0
# Traverse from 1 to n
for i in range ( 1 , n + 1 ) :
# increase the count if both
# the conditions are satisfied
if (n % i = = 0 and i % k = = 0 ) :
count + = 1
return count
# Driver code if __name__ = = "__main__" :
n, k = 12 , 3
print (countDivisors(n, k))
# This code is contributed by ANKITRAI1 |
// C# program to count number // of divisors of N which are // divisible by K using System;
class GFG
{ // Function to count number // of divisors of N which // are divisible by K static int countDivisors( int n, int k)
{ // Variable to store
// count of divisors
int count = 0, i;
// Traverse from 1 to n
for (i = 1; i <= n; i++)
{
// increase the count if both
// the conditions are satisfied
if (n % i == 0 && i % k == 0)
{
count++;
}
}
return count;
} // Driver code public static void Main ()
{ int n = 12, k = 3;
Console.WriteLine(countDivisors(n, k));
} } // This code is contributed by Shashank |
<script> // Javascript implementation of above approach // Function to count number of divisors // of N which are divisible by K function countDivisors(n, k)
{ // Variable to store
// count of divisors
var count = 0, i;
// Traverse from 1 to n
for (i = 1; i <= n; i++) {
// increase the count if both
// the conditions are satisfied
if (n % i == 0 && i % k == 0) {
count++;
}
}
return count;
} var n = 12, k = 3;
document.write(countDivisors(n, k)); // This code is contributed by SoumikMondal. </script> |
<?php // PHP program to count number // of divisors of N which are // divisible by K // Function to count number of divisors // of N which are divisible by K function countDivisors( $n , $k )
{ // Variable to store
// count of divisors
$count = 0;
// Traverse from 1 to n
for ( $i = 1; $i <= $n ; $i ++)
{
// increase the count if both
// the conditions are satisfied
if ( $n % $i == 0 && $i % $k == 0)
{
$count ++;
}
}
return $count ;
} // Driver code $n = 12; $k = 3;
echo countDivisors( $n , $k );
// This code is contributed // by Akanksha Rai(Abby_akku) |
3
Time Complexity : O(N)
Auxiliary Space: O(1)
Efficient Approach: The idea is to run a loop from 1 to < √(N) and check whether the number is a divisor of N and is divisible by K and we will also check whether ( N/i ) is divisible by K or not. As (N/i) will also be a factor of N if i is a factor of N.
Below is the implementation of the above approach:
// C++ program to count number of divisors // of N which are divisible by K #include <bits/stdc++.h> using namespace std;
// Function to count number of divisors // of N which are divisible by K int countDivisors( int n, int k)
{ // integer to count the divisors
int count = 0, i;
// Traverse from 1 to sqrt(N)
for (i = 1; i <= sqrt (n); i++)
{
// Check if i is a factor
if (n % i == 0)
{
// increase the count if i
// is divisible by k
if (i % k == 0)
{
count++;
}
// (n/i) is also a factor
// check whether it is divisible by k
if ((n / i) % k == 0)
{
count++;
}
}
}
i--;
// If the number is a perfect square
// and it is divisible by k
if ((i * i == n) && (i % k == 0))
{
count--;
}
return count;
} // Driver code int main()
{ int n = 16, k = 4;
// Function Call
cout << countDivisors(n, k);
return 0;
} |
// Java program to count number of divisors // of N which are divisible by K import java.io.*;
class GFG {
// Function to count number of divisors // of N which are divisible by K static int countDivisors( int n, int k)
{ // integer to count the divisors
int count = 0 , i;
// Traverse from 1 to sqrt(N)
for (i = 1 ; i <= Math.sqrt(n); i++)
{
// Check if i is a factor
if (n % i == 0 )
{
// increase the count if i
// is divisible by k
if (i % k == 0 )
{
count++;
}
// (n/i) is also a factor
// check whether it is divisible by k
if ((n / i) % k == 0 )
{
count++;
}
}
}
i--;
// If the number is a perfect square
// and it is divisible by k
if ((i * i == n) && (i % k == 0 ))
{
count--;
}
return count;
} // Driver code
public static void main (String[] args)
{
int n = 16 , k = 4 ;
System.out.println( countDivisors(n, k));
}
} //This Code is Contributed by akt_mit |
# Python 3 program to count number of # divisors of N which are divisible by K import math
# Function to count number of divisors # of N which are divisible by K def countDivisors(n, k):
# integer to count the divisors
count = 0
# Traverse from 1 to sqrt(N)
for i in range ( 1 , int (math.sqrt(n)) + 1 ):
# Check if i is a factor
if (n % i = = 0 ) :
# increase the count if i
# is divisible by k
if (i % k = = 0 ) :
count + = 1
# (n/i) is also a factor check
# whether it is divisible by k
if ((n / / i) % k = = 0 ) :
count + = 1
# If the number is a perfect square
# and it is divisible by k
# if i is sqrt reduce by 1
if ((i * i = = n) and (i % k = = 0 )) :
count - = 1 return count
# Driver code if __name__ = = "__main__" :
n = 16
k = 4
print (countDivisors(n, k))
# This code is contributed # by ChitraNayal |
// C# program to count number of divisors // of N which are divisible by K using System;
class GFG
{ // Function to count number of divisors // of N which are divisible by K static int countDivisors( int n, int k)
{ // integer to count the divisors
int count = 0, i;
// Traverse from 1 to sqrt(N)
for (i = 1; i <= Math.Sqrt(n); i++)
{
// Check if i is a factor
if (n % i == 0)
{
// increase the count if i
// is divisible by k
if (i % k == 0)
{
count++;
}
// (n/i) is also a factor check
// whether it is divisible by k
if ((n / i) % k == 0)
{
count++;
}
}
}
i--;
// If the number is a perfect square
// and it is divisible by k
if ((i * i == n) && (i % k == 0))
{
count--;
}
return count;
} // Driver code static public void Main ()
{ int n = 16, k = 4;
Console.WriteLine( countDivisors(n, k));
} } // This code is contributed by ajit |
<script> // Javascript program to count number of divisors
// of N which are divisible by K
// Function to count number of divisors
// of N which are divisible by K
function countDivisors(n, k)
{
// integer to count the divisors
let count = 0, i;
// Traverse from 1 to sqrt(N)
for (i = 1; i <= Math.sqrt(n); i++)
{
// Check if i is a factor
if (n % i == 0)
{
// increase the count if i
// is divisible by k
if (i % k == 0)
{
count++;
}
// (n/i) is also a factor check
// whether it is divisible by k
if ((n / i) % k == 0)
{
count++;
}
}
}
i--;
// If the number is a perfect square
// and it is divisible by k
if ((i * i == n) && (i % k == 0))
{
count--;
}
return count;
}
let n = 16, k = 4;
document.write( countDivisors(n, k));
</script> |
<?php // PHP program to count number // of divisors of N which are // divisible by K // Function to count number // of divisors of N which // are divisible by K function countDivisors( $n , $k )
{ // integer to count the divisors
$count = 0;
// Traverse from 1 to sqrt(N)
for ( $i = 1; $i <= sqrt( $n ); $i ++)
{
// Check if i is a factor
if ( $n % $i == 0)
{
// increase the count if i
// is divisible by k
if ( $i % $k == 0)
{
$count ++;
}
// (n/i) is also a factor
// check whether it is
// divisible by k
if (( $n / $i ) % $k == 0)
{
$count ++;
}
}
}
i--;
// If the number is a perfect
// square and it is divisible by k
if (( $i * $i == $n ) && ( $i % $k == 0))
{
$count --;
}
return $count ;
} // Driver code $n = 16;
$k = 4;
echo (countDivisors( $n , $k ));
// This code is contributed // by Shivi_Aggarwal ?> |
3
Time Complexity: O(√(n))
Auxiliary Space: O(1) as using constant space