Problem 23. Non-abundant sums

Description

import java.util.ArrayList;

public class euler23 {
    public static void main(String[]args) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        int[] array = new int[28123];
        int sum = 0;
        for (int i = 1; i < 28123; i++) {
            int s = sumDiv(i);
            if (i < s)
              	array[i] = 1;
            else
             	array[i] = 0;
        }
	
        for (int i = 0; i < array.length; i++) {
            if (array[i] != 0) {
                list.add(i);
            }
        }
	
        int [] a = new int[28123];
        int sum1 = 0;
        for (int i = 0; i < list.size(); i++) {
            for (int j = i; j < list.size(); j++) {
                if (list.get(i) + list.get(j) < 28123) {
                    sum1 = list.get(i) + list.get(j);
                    a[sum1] = 1;
                    sum1 = 0;
                }
            }
        }
        int sumF = 0;
        for (int i = 0; i < 28123; i++) {
            if (a[i] == 0) {
                sumF += i;
            }
       	}
       	System.out.println(sumF);
    }
    public static int sumDiv(int n) {
       	int sum = 0;
       	for (int i = 1; i*i <= n; i++) {
            if (n % i == 0) {
                if (i > 1 & i*i != n)
                    sum += n/i;
                sum += i;
            }
        }
        return sum;
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>