Function IsPrime(n As Integer) As Boolean Dim found As Integer found = n Mod 2 = 0 Dim p As Integer p = 3 Do While Not found And p * p <= n found = n Mod p = 0 p = p + 2 Loop IsPrime = Not foundEnd FunctionSub main() Randomize Timer Dim n As Integer, i As Integer, k As Integer n = 100 + Int(Round(899 * Rnd)) ReDim a(1 To n) As Integer ReDim b(1 To n) As Integer i = 0: k = 0 MsgBox n Do While i < n i = i + 1 a(i) = 1000 + Int(Round(8999 * Rnd)) If IsPrime(a(i)) Then k = k + 1 b(k) = a(i) End If Loop Rows("1:1000").Clear Range(Cells(1, 1), Cells(n, 1)) = a For i = 1 To k Cells(i, 1) = a(i) Cells(i, 2) = b(i) Next i If k > 1 Then 'Сортировка второй колонки, так красивее Dim r As Range Set r = Range(Cells(1, 2), Cells(k, 2)) r.Sort Range("B1") End If For i = k + 1 To n Cells(i, 1) = a(i) Next iEnd Sub