// A pandigital number is an integer that contains each digit from 0 to 9
// at least once, with the condition that the leading digit must be nonzero
// for example, 1023456987 is a pandigital number
object PandigitalCheck {
def isPandigitalRange(num: Long, start: Int = 1, end: Int = 9): Boolean = {
val str = num.toString
// Build the expected digit string
val expected = (start to end).map(_.toString).mkString
// Sort digits of the number
val sorted = str.sorted
sorted == expected
}
def main(args: Array[String]): Unit = {
println(isPandigitalRange(123456789))
println(isPandigitalRange(1023456789, 0, 9))
println(isPandigitalRange(987654321))
println(isPandigitalRange(123456780))
println(isPandigitalRange(123456780))
println(isPandigitalRange(123455789))
println(isPandigitalRange(12345))
}
}
/*
run:
true
true
true
false
false
false
false
*/