diff --git a/src/main/java/de/cas/mse/exercise/SumDigPower.java b/src/main/java/de/cas/mse/exercise/SumDigPower.java index 7e40961..d7491bb 100644 --- a/src/main/java/de/cas/mse/exercise/SumDigPower.java +++ b/src/main/java/de/cas/mse/exercise/SumDigPower.java @@ -5,37 +5,44 @@ public class SumDigPower { - public List sumDigPow(long a, long b) { + public List sumDigPow(long lowerBoundary, long upperBoundary) { - List result = new ArrayList(); + List eurekaNumbers = new ArrayList(); - for (long i = a; i < b; i++) { + for (long number = lowerBoundary; number < upperBoundary; number++) { - List longs = new ArrayList(); + List digits = splitNumbertoDigits(number); - String temp = Long.toString(i); + long sum = calculateEurekaSum(digits); - // Split values - for (int j = 0; j < temp.length(); j++) { - longs.add(Long.valueOf(temp.substring(j, j + 1))); + if (sum == number) { + eurekaNumbers.add(sum); } - // Create sum - long sum = 0; - for (int j = 1; j <= longs.size(); j++) { - sum += Math.pow(longs.get(j - 1), j); - } + } - // Test if sum is equal - if (sum == i) { - result.add(sum); - } + System.out.println(eurekaNumbers); + return eurekaNumbers; + } - } + private List splitNumbertoDigits(long number) { + List digits = new ArrayList(); + String temp = Long.toString(number); - System.out.println(result); - return result; + for (int i = 0; i < temp.length(); i++) { + digits.add(Long.valueOf(temp.substring(i, i + 1))); + } + return digits; } + + private long calculateEurekaSum(List digits) { + long sum = 0; + for (int i = 1; i <= digits.size(); i++) { + sum += Math.pow(digits.get(i - 1), i); + } + + return sum; + } } \ No newline at end of file