Dim mas(,) As Integer
Dim u As Integer, u2 As Integer
Dim a As Integer
Dim b As Integer
a = InputBox("Введите Начало промежутка (A)")
b = InputBox("Введите Конец промежутка (В)")
Dim Length As Integer
Length = CInt(((b - a) ^ 2) ^ 0.5)
ReDim mas(Length, 1)
Dim x As Integer, y As Integer, i As Integer
For x = a To b
mas(i, 0) = x
i += 1
Next
For x = 0 To Length
For i = 1 To mas(x, 0)
If (mas(x, 0) Mod i) = 0 Then
mas(x, 1) += 1
End If
Next
Next
For i = Length To 0 Step -1
For y = Length To 1 Step -1
If mas(y, 1) > mas(y - 1, 1) Then
u = mas(y, 1)
u2 = mas(y, 0)
mas(y, 1) = mas(y - 1, 1)
mas(y, 0) = mas(y - 1, 0)
mas(y - 1, 1) = u
mas(y - 1, 0) = u2
End If
Next y
Next i
Например на промежутке 5 - 55 результат такой:
48 делителей 10
36 делителей 9
24 делителей 8
30 делителей 8
40 делителей 8
42 делителей 8
54 делителей 8
12 делителей 6
18 делителей 6
20 делителей 6
28 делителей 6
32 делителей 6
44 делителей 6
45 делителей 6
50 делителей 6
52 делителей 6
16 делителей 5
6 делителей 4
8 делителей 4
10 делителей 4
14 делителей 4
15 делителей 4
21 делителей 4
22 делителей 4
26 делителей 4
27 делителей 4
33 делителей 4
34 делителей 4
35 делителей 4
38 делителей 4
39 делителей 4
46 делителей 4
51 делителей 4
55 делителей 4
9 делителей 3
25 делителей 3
49 делителей 3
5 делителей 2
7 делителей 2
11 делителей 2
13 делителей 2
17 делителей 2
19 делителей 2
23 делителей 2
29 делителей 2
31 делителей 2
37 делителей 2
41 делителей 2
43 делителей 2
47 делителей 2
53 делителей 2