RosettaCodeData/Task/Proper-divisors/Visual-Basic-.NET/proper-divisors.vb

17 lines
695 B
VB.net

Module Module1
Function ProperDivisors(number As Integer) As IEnumerable(Of Integer)
Return Enumerable.Range(1, number / 2).Where(Function(divisor As Integer) number Mod divisor = 0)
End Function
Sub Main()
For Each number In Enumerable.Range(1, 10)
Console.WriteLine("{0}: {{{1}}}", number, String.Join(", ", ProperDivisors(number)))
Next
Dim record = Enumerable.Range(1, 20000).Select(Function(number) New With {.Number = number, .Count = ProperDivisors(number).Count()}).OrderByDescending(Function(currentRecord) currentRecord.Count).First()
Console.WriteLine("{0}: {1}", record.Number, record.Count)
End Sub
End Module