← All examples

Amicable numbers

Java Algorithms

sum of divisors

Flowchart (ISO 5807)

YesNoStartInput ns = 0i = 1, n - 1, 1n % i == 0s += iReturn sEndFigure 1 — Amicable.sumDivisorsStartInput a, bReturn sumDivisors(a) == b && sumDivisors(b) == aEndFigure 2 — Amicable.areAmicable

Source code

class Amicable {
    static int sumDivisors(int n) {
        int s = 0;
        for (int i = 1; i < n; i++) {
            if (n % i == 0) {
                s += i;
            }
        }
        return s;
    }

    static boolean areAmicable(int a, int b) {
        return sumDivisors(a) == b && sumDivisors(b) == a;
    }
}