Finding Perfect Numbers in a Range Using Java
A perfect number is a positive integer that is equal to the sum of its proper divisors excluding itself. For example, 6 is a perfect number since the sum of its divisors (1 + 2 + 3) is equal to 6.
Finding Perfect Numbers in a Range Using Java
The following Java program finds all perfect numbers between two given numbers. The following program prints perfect numbers between 1 and 10000. We iterate through the range of values and then check whether each number is a perfect number or not.
To check whether a number is perfect, we first find all the proper divisors and then add them up. We then check whether it is same as the given number. The first 4 perfect numbers are 6,28,496 and 8128.
import java.io.IOException;
// Finding perfect numbers in a range using Java
public class PerfectNumbersInRange {
public static void main(String[] args) throws IOException {
int starting_number = 1;
int ending_number = 10000;
System.out.println("Perfect Numbers between "+starting_number+ " and "+ending_number);
for (int i = starting_number; i <= ending_number; i++) {
if (isPerfectNumber(i)) {
System.out.println(i+" is a perfect number");
}
}
}
/**
* Checks whether the given number is a perfect number
* @param number
* @return
*/
public static boolean isPerfectNumber(int number) {
int sum=0;
for(int i=1; i<=number/2; i++) {
if(number%i == 0) {
sum += i;
}
}
if(sum==number) {
return true;
}else {
return false;
}
}
}