При датчика случайных чисел вводится последовательность a, состоящая из n (случайное трёхзначное число) целых положительных случайных 4-х значных чисел.получить последовательность b, куда включить только простые числа из последовательности а.обе последовательности вывести в соседние столбцы рабочего листа.на языке vba

seluchka seluchka    1   26.09.2019 18:50    1

Ответы
dedrina dedrina  08.10.2020 20:51
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 found
End Function

Sub 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 i
End Sub
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика