# Euler Problem 21

Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n).
If d(a) = b and d(b) = a, where a b, then a and b are an amicable pair and each of a and b are called amicable numbers.

For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220.

Evaluate the sum of all the amicable numbers under 10000.

First, use the factoring routine from Problem 12 and then the trick is to not double-up on numbers over the iteration.

import java.util.ArrayList;

public class Euler21
{
public static void main(String[] args)
{
System.out.print(“Problem 21:\n”);
Euler21 e = new Euler21();
System.out.print(“Answer = ” + e.Problem()+ “\n”);
}
public String Problem ()
{
int sum = 0;
ArrayList<Integer> numbers = new ArrayList<Integer>();
for (int a = 1; a <= 10000; a++)
{
int b = d(a);
if (a == d(b) && a != b)
{
if (numbers.contains(a) == false)
if (numbers.contains(b) == false)
}
}
for (int n: numbers)
sum += n;
return String.valueOf(sum);
}

public int d (int num)
{
ArrayList<Integer> factors = new ArrayList<Integer>();
int sum = 0;
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}