## Problem Description :

Write a program in Java that prints all the divisors of any given number.

## Concept :

Divisors means numbers that are evenly divisible by given number. All the divisors should be less than or equal to given number. For example - number 12 has 6 divisors 1,2,3,4,6,12We can solve this problem either using brute force approach or some efficient algorithm.

## Java Program :

### 1) Brute Force :

It will take lot of time if number is very large because in for loop one by one we are checking each number.

```package com.javamultiplex.number;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
*
* @author Rohit Agarwal
* @category Number Problems
* @problem Print all the divisors of given number
*
*/
public class DivisorsBruteForce {

public static void main(String[] args) {

Scanner input = null;
List<Integer> list = new ArrayList<>();
int count = 0;
try {
input = new Scanner(System.in);
System.out.println("Enter number : ");
int number = input.nextInt();
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
count++;
}
}
System.out.println("There are " + count + " divisors : " + list);
} finally {
if (input != null) {
input.close();
}
}

}

}
```

### 2) Efficient Algorithm :

This is an efficient algorithm because here we are not checking each number, for loop is running until square root of given number.

```package com.javamultiplex.number;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
*
* @author Rohit Agarwal
* @category Number Problems
* @problem Print all the divisors of given number
*
*/
public class Divisors {

public static void main(String[] args) {

Scanner input = null;
List<Integer> list = new ArrayList<>();
try {
input = new Scanner(System.in);
System.out.println("Enter number :");
int num = input.nextInt();
int limit = (int) Math.sqrt(num);
int temp = 0;
for (int i = 1; i <= limit; i++) {
if (num % i == 0) {
temp = num / i;
if (i != temp) {
}
}
}
// Sorting list elements.
Collections.sort(list);
int divisors = list.size();
System.out.println("There are " + divisors + " divisors : " + list);
} finally {
if (input != null) {
input.close();
}
}

}

}
```

## Output :

 Output - How to get all the divisors of given number in Java?

## References :

Thank you friends, I hope you have clearly understood the solution of this problem. If you have any doubt, suggestion or query please feel free to comment below. You can also discuss this solution in our forum.

Tags : Divisors of given number in Java, Solution in Java, List, ArrayList, Collections, for loop, if else statement, Sorting.