' 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
Imports System
Imports System.Linq
Module Program
Function IsPandigitalRange(num As Long, Optional start As Integer = 1, Optional ending As Integer = 9) As Boolean
Dim str As String = num.ToString()
' Build the expected digit string
Dim expected As String = String.Concat(Enumerable.Range(start, ending - start + 1))
' Sort the digits of the number
Dim digits As Char() = str.ToCharArray()
Array.Sort(digits)
Dim sorted As String = New String(digits)
Return sorted = expected
End Function
Sub Main()
Console.WriteLine(IsPandigitalRange(123456789))
Console.WriteLine(IsPandigitalRange(1023456789, 0, 9))
Console.WriteLine(IsPandigitalRange(987654321))
Console.WriteLine(IsPandigitalRange(123456780))
Console.WriteLine(IsPandigitalRange(12345))
End Sub
End Module
'
' run:
'
' True
' True
' True
' False
' False
'