# Number of divisors of a given number N which are divisible by K

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++

`// 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

`// 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..` |

## Python3

`# 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#

`// 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` |

## PHP

`<?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)` |

## Javascript

`<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>` |

**Output**

3

**Time Complexity** : O(N)**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++

`// 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

`// 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

`# 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#

`// 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` |

## PHP

`<?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` `?>` |

## Javascript

`<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>` |

**Output**

3

**Time Complexity** :O(√(n))