Given an integer **N**. The task is to find the number of divisors of all the numbers in the range **[1, N]**.

**Examples:**

Input:N = 5Output:1 2 2 3 2

divisors(1) = 1

divisors(2) = 1 and 2

divisors(3) = 1 and 3

divisors(4) = 1, 2 and 4

divisors(5) = 1 and 5

Input:N = 10Output:1 2 2 3 2 4 2 4 3 4

**Approach:** Create an array **arr[]** of the size **(N + 1)** where **arr[i]** stores the number of divisors of **i**. Now for every **j** from the range **[1, N]**, increment all the elements which are divisible by **j**.

For example, if **j = 3** then update **arr[3], arr[6], arr[9], …**

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to find the number of divisors` `// of all numbers in the range [1, n]` `void` `findDivisors(` `int` `n)` `{` ` ` `// Array to store the count` ` ` `// of divisors` ` ` `int` `div` `[n + 1];` ` ` `memset` `(` `div` `, 0, ` `sizeof` `div` `);` ` ` `// For every number from 1 to n` ` ` `for` `(` `int` `i = 1; i <= n; i++) {` ` ` `// Increase divisors count for` ` ` `// every number divisible by i` ` ` `for` `(` `int` `j = 1; j * i <= n; j++)` ` ` `div` `[i * j]++;` ` ` `}` ` ` `// Print the divisors` ` ` `for` `(` `int` `i = 1; i <= n; i++)` ` ` `cout << ` `div` `[i] << ` `" "` `;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `n = 10;` ` ` `findDivisors(n);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `class` `GFG` `{` ` ` ` ` `// Function to find the number of divisors` ` ` `// of all numbers in the range [1, n]` ` ` `static` `void` `findDivisors(` `int` `n)` ` ` `{` ` ` ` ` `// Array to store the count` ` ` `// of divisors` ` ` `int` `[] div = ` `new` `int` `[n + ` `1` `];` ` ` ` ` `// For every number from 1 to n` ` ` `for` `(` `int` `i = ` `1` `; i <= n; i++)` ` ` `{` ` ` ` ` `// Increase divisors count for` ` ` `// every number divisible by i` ` ` `for` `(` `int` `j = ` `1` `; j * i <= n; j++)` ` ` `div[i * j]++;` ` ` `}` ` ` ` ` `// Print the divisors` ` ` `for` `(` `int` `i = ` `1` `; i <= n; i++)` ` ` `System.out.print(div[i]+` `" "` `);` ` ` `}` ` ` ` ` `// Driver code` ` ` `public` `static` `void` `main(String args[])` ` ` `{` ` ` `int` `n = ` `10` `;` ` ` `findDivisors(n);` ` ` `}` `}` `// This code is contributed by Ryuga` |

## Python3

`# Python3 implementation of the approach` `# Function to find the number of divisors` `# of all numbers in the range [1,n]` `def` `findDivisors(n):` ` ` ` ` `# List to store the count` ` ` `# of divisors` ` ` `div ` `=` `[` `0` `for` `i ` `in` `range` `(n ` `+` `1` `)]` ` ` ` ` `# For every number from 1 to n` ` ` `for` `i ` `in` `range` `(` `1` `, n ` `+` `1` `):` ` ` ` ` `# Increase divisors count for` ` ` `# every number divisible by i` ` ` `for` `j ` `in` `range` `(` `1` `, n ` `+` `1` `):` ` ` `if` `j ` `*` `i <` `=` `n:` ` ` `div[i ` `*` `j] ` `+` `=` `1` ` ` `# Print the divisors` ` ` `for` `i ` `in` `range` `(` `1` `, n ` `+` `1` `):` ` ` `print` `(div[i], end ` `=` `" "` `)` `# Driver Code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `n ` `=` `10` ` ` `findDivisors(n)` `# This code is contributed by` `# Vivek Kumar Singh` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG` `{` ` ` `// Function to find the number of divisors` `// of all numbers in the range [1, n]` `static` `void` `findDivisors(` `int` `n)` `{` ` ` `// Array to store the count` ` ` `// of divisors` ` ` `int` `[] div = ` `new` `int` `[n + 1];` ` ` `// For every number from 1 to n` ` ` `for` `(` `int` `i = 1; i <= n; i++)` ` ` `{` ` ` `// Increase divisors count for` ` ` `// every number divisible by i` ` ` `for` `(` `int` `j = 1; j * i <= n; j++)` ` ` `div[i * j]++;` ` ` `}` ` ` `// Print the divisors` ` ` `for` `(` `int` `i = 1; i <= n; i++)` ` ` `Console.Write(div[i]+` `" "` `);` `}` `// Driver code` `static` `void` `Main()` `{` ` ` `int` `n = 10;` ` ` `findDivisors(n);` `}` `}` `// This code is contributed by mits` |

## PHP

`<?php` `// PHP implementation of the approach` `// Function to find the number of divisors` `// of all numbers in the range [1, n]` `function` `findDivisors(` `$n` `)` `{` ` ` `// Array to store the count` ` ` `// of divisors` ` ` `$div` `= ` `array_fill` `(0, ` `$n` `+ 2, 0);` ` ` ` ` `// For every number from 1 to n` ` ` `for` `(` `$i` `= 1; ` `$i` `<= ` `$n` `; ` `$i` `++)` ` ` `{` ` ` `// Increase divisors count for` ` ` `// every number divisible by i` ` ` `for` `(` `$j` `= 1; ` `$j` `* ` `$i` `<= ` `$n` `; ` `$j` `++)` ` ` `$div` `[` `$i` `* ` `$j` `]++;` ` ` `}` ` ` `// Print the divisors` ` ` `for` `(` `$i` `= 1; ` `$i` `<= ` `$n` `; ` `$i` `++)` ` ` `echo` `$div` `[` `$i` `], ` `" "` `;` `}` `// Driver code` `$n` `= 10;` `findDivisors(` `$n` `);` `// This code is contributed` `// by Arnab Kundu` `?>` |

## Javascript

`<script>` `// Javascript implementation of the approach` `// Function to find the number of divisors` `// of all numbers in the range [1, n]` `function` `findDivisors(n)` `{` ` ` `// Array to store the count` ` ` `// of divisors` ` ` `let div = ` `new` `Array(n + 1).fill(0);` ` ` `// For every number from 1 to n` ` ` `for` `(let i = 1; i <= n; i++)` ` ` `{` ` ` ` ` `// Increase divisors count for` ` ` `// every number divisible by i` ` ` `for` `(let j = 1; j * i <= n; j++)` ` ` `div[i * j]++;` ` ` `}` ` ` `// Print the divisors` ` ` `for` `(let i = 1; i <= n; i++)` ` ` `document.write(div[i] + ` `" "` `);` `}` `// Driver code` `let n = 10;` `findDivisors(n);` `// This code is contributed by souravmahato348` `</script>` |

**Output:**

1 2 2 3 2 4 2 4 3 4

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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**