fork download
  1. object Main extends App {
  2. def toRange(s: String, base: Int = 10): Range = {
  3. val arr = s.split(" ")
  4. Range.inclusive(Integer.parseInt(arr(0), base), Integer.parseInt(arr(1), base))
  5. }
  6.  
  7. def isKaprekar(i: Int): Boolean = {
  8. val str = math.pow(i, 2).toInt.toString
  9. val ret = for {
  10. c <- 1 to (str.length - 1)
  11. part1 = str.slice(0, c).toInt
  12. part2 = str.slice(c, str.length).toInt
  13. } yield (part1 != 0 && part2 != 0 && i == part1 + part2)
  14. ret.contains(true)
  15. }
  16.  
  17. Seq("2 100", "101 9000").foreach(s => println(toRange(s).filter(isKaprekar).mkString(" ")))
  18. }
Success #stdin #stdout 0.2s 322432KB
stdin
Standard input is empty
stdout
9 45 55 99
297 703 999 2223 2728 4879 4950 5050 5292 7272 7777