При помощи датчика случайных чисел вводится последовательность a, состоящая из N (случайное трёхзначное число) целых положительных случайных 4-х значных чисел.Получить последовательность b, куда включить только простые числа из последовательности а.Обе последовательности вывести в соседние столбцы рабочего листа.на языке VBA
Ответы
Ответ дал:
0
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
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
Ответ дал:
0
Крут
Ответ дал:
0
Я бы предпочел обойтись без подобных оценок.
Ответ дал:
0
Возможно, в Вашем кругу общения они уместны, но здесь, где находятся люди самого разного возраста, - совершенно нет.
Вас заинтересует
1 год назад
1 год назад
8 лет назад
8 лет назад
8 лет назад
8 лет назад