source: https://www.hackerrank.com/challenges/30-interfaces?h_r=next-challenge&h_v=zen
import java.io.*;
import java.util.*;
interface AdvancedArithmetic{
int divisorSum(int n);
}
//Write your code here
class Calculator implements AdvancedArithmetic {
public int divisorSum(int n) {
int sq = (int)Math.floor(Math.sqrt((double) n));
List<Integer> seqs = new ArrayList<Integer>();
Set<Integer> divisors = new HashSet<Integer>();
for(int i = 1; i <= sq; i++) seqs.add(i);
seqs.stream().forEach(i -> {
if(n % i != 0) return;
divisors.add(i);
divisors.add(n/i);
});
return divisors.stream().reduce(0, (x, y) -> x + y);
}
}
class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
AdvancedArithmetic myCalculator = new Calculator();
int sum = myCalculator.divisorSum(n);
System.out.println("I implemented: " + myCalculator.getClass().getInterfaces()[0].getName() );
System.out.println(sum);
}
}