All pastes #1214930 Raw Edit

Abundant numbers

public java v1 · immutable
#1214930 ·published 2008-09-30 17:55 UTC
rendered paste body
import java.util.ArrayList;import java.util.Arrays;public class Abundant {   public static int[] getAbundant(int limit) {      ArrayList<Integer> abundant = new ArrayList<Integer>();      for(int i=1;i<limit;i++) {         if(sumDivisors(i) > i) {            abundant.add(i);         }      }      int[] result = new int[abundant.size()];      for(int i=0;i<abundant.size();i++) {         result[i] = abundant.get(i);      }      return result;   }   public static int sumDivisors(int num) {      int sum = 1; //1 divides num      for(int i=2;i*i<num;i++) {         if(num % i == 0) {            sum += i;            sum += num / i;         }      }      return sum;   }   public static void main(String[] args) {      boolean[] sums = new boolean[28124];      Arrays.fill(sums,false);      int[] abundant = getAbundant(28124);      //Set true to numbers writable as sums of abundant numbers      for(int i=0;i<abundant.length;i++) {         int p = abundant[i];         for(int j=i;j<abundant.length && p+abundant[j] < sums.length;j++) {            int index = p+abundant[j];            sums[index] = true;         }      }      //Check numbers whose entries in the array are false      int sum = 0;      for(int i=0;i<sums.length;i++) {         if(!sums[i]) {            sum += i;         }      }      System.out.println(sum);   }}