Tuesday, 21 July 2015

Perfect numbers in a given range using Java........

Here is the code ....


       
import java.util.ArrayList;
import java.util.Iterator;

import java.util.List;

public class test5 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  List d = getPerfectNumbers(1, 1000);

  Iterator itr = ((ArrayList < Integer > ) d).listIterator();

  while (itr.hasNext())
   System.out.println(itr.next());
 }


 public static java.util.List < Integer > getPerfectNumbers(int from, int to) {
  /*
    return a list of all perfect numbers in the given range inclusively.
    A perfect number is defined as a positive integer which is the sum of its positive divisors not including the number itself.
    For example: 6 is a perfect number because 6 = 1 + 2 + 3 (1, 2, 3 are divisors of 6)
    28 is also a perfect number: 28 = 1 + 2 + 4 + 7 + 14
   */
  int k;
  java.util.List < Integer > l = new ArrayList < Integer > ();
  for (int p = from; p <= to; p++) {
   k = sum(p);
   if (k == p) {
    l.add(p);

   }
  }
  return l;
 }


 public static int sum(int t) {
  int sum = 0;
  for (int i = 1; i < t; i++) {
   if (t % i == 0)
    sum = sum + i;
  }
  return sum;
 }

}

       
 

No comments:

Post a Comment