package com.interview.books.question300;
import com.interview.leetcode.utils.Pair;
import java.util.ArrayList;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: stefanie
* Date: 7/11/14
* Time: 5:12 PM
*/
public class TQ9_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;
}
public static void main(String[] args){
List<Pair<Integer>> pairs = TQ9_AmicableNumbersFinder.find(10000);
for(Pair<Integer> pair : pairs){
System.out.println(pair.x + ", " + pair.y);
}
}
}