Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5. import static java.lang.System.out;
  6. import static java.util.stream.Collectors.toList;
  7. import static java.util.stream.Collectors.toSet;
  8. import static java.util.stream.IntStream.range;
  9.  
  10. public class WonderlandNumbers {
  11.  
  12. public static void main(String[] args) {
  13. final long t1 = System.currentTimeMillis();
  14. out.println(
  15. range(100_000, 10_000_000)
  16. .boxed()
  17. .filter(WonderlandNumbers::isMagicNumber)
  18. .parallel() // 4 s sur mon Mac, sinon 10 s
  19. .collect(toSet())
  20. );
  21. final long t2 = System.currentTimeMillis();
  22. out.println("Duration: " + (t2 - t1) + " ms");
  23. }
  24.  
  25. private static boolean isMagicNumber(final Integer number) {
  26. return range(2, 6)
  27. .map(n -> n * number)
  28. .allMatch(n -> digits(n).equals(digits(number)));
  29. }
  30.  
  31. private static List<Byte> digits(final Integer number) {
  32. final byte[] bytes = String.valueOf(number).getBytes();
  33. final List<Byte> byteArrays = new ArrayList<>();
  34. for (final byte b : bytes) {
  35. byteArrays.add(new Byte(b));
  36. }
  37. return byteArrays.stream()
  38. .sorted()
  39. .collect(toList());
  40. }
  41.  
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement