package com.interview.algorithms.general; import com.interview.basics.model.collection.list.ArrayList; import com.interview.basics.model.collection.list.List; import com.interview.utils.models.Pair; /** * Created with IntelliJ IDEA. * User: stefanie * Date: 7/11/14 * Time: 5:12 PM */ public class C1_35_AmicableNumbersFinder { public static List<Pair<Integer>> find(int range){ List<Pair<Integer>> numbers = new ArrayList<>(); int N = range + 1; int[] sum = new int[N]; for(int i = 0; i < N; i++) sum[i] = 1; for(int i = 2; i < N / 2; i++){ for(int j = i + i; j < N; j += i){ sum[j]+= i; } } for(int i = 1; i < N; i++){ if(sum[i] < N && sum[i] > i && i == sum[sum[i]]) numbers.add(new Pair<>(i, sum[i])); } return numbers; } }