Advertisement
zoltanvi

Perfect number printer (recursive)

Jul 9th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.84 KB | None | 0 0
  1. public class PerfectNumber {
  2.  
  3.     private boolean isPerfectNumber(int number, int current, int sum) {
  4.  
  5.         if (number <= 2) {
  6.             return false;
  7.         }
  8.  
  9.         if (current == 1) {
  10.             return ++sum == number;
  11.         }
  12.  
  13.         if (number % current == 0) {
  14.             return isPerfectNumber(number, current - 1, sum + current);
  15.         } else {
  16.             return isPerfectNumber(number, current - 1, sum);
  17.         }
  18.     }
  19.  
  20.     public boolean perfectNumber(int n) {
  21.         return isPerfectNumber(n, n / 2, 0);
  22.     }
  23.  
  24.  
  25.     public static void main(String[] args) {
  26.         PerfectNumber pNumber = new PerfectNumber();
  27.  
  28.         for (int i = 1; i < 10000; i++) {
  29.             if (pNumber.perfectNumber(i)) {
  30.                 System.out.println(i + " is a perfect number!");
  31.             }
  32.         }
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement