profile
Опубликовано 5 лет назад по предмету Информатика от Kent56789

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

  1. Ответ
    Ответ дан Аккаунт удален
    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
    1. Ответ
      Ответ дан Kent56789
      Крут
    2. Ответ
      Ответ дан Аккаунт удален
      Я бы предпочел обойтись без подобных оценок.
    3. Ответ
      Ответ дан Аккаунт удален
      Возможно, в Вашем кругу общения они уместны, но здесь, где находятся люди самого разного возраста, - совершенно нет.
Самые новые вопросы