Дано простое число. Составить функцию, которая будет находить следующее за ним простое число - VB

Узнай цену своей работы

Формулировка задачи:

Дано простое число. Составить функцию, которая будет находить следующее за ним простое число!

Решение задачи: «Дано простое число. Составить функцию, которая будет находить следующее за ним простое число»

textual
Листинг программы
Option Explicit
 
Private Sub Form_Load()
    Dim d#, i&, ll&()
    ll = Primes(101)
    Do: d = 0
        While Not (d > 0 And d < 98): d = Val(InputBox("Введите простое число" & vbLf & "от 1 до 97", , 1)): Wend
        For i = 0 To UBound(ll)
            If d = ll(i) Then
                MsgBox "Простое число: " & d & vbLf & "Следущее: " & ll(i + 1)
                End
            End If
        Next
    Loop
    
End Sub
 
Function Primes(ByVal max&) As Long()
    Dim i&, ii&, n&
    If max > 1 Then
    ElseIf max = 1 Then
        ReDim ll&(0): ll(0) = 1: Primes = ll: Exit Function
    Else: Exit Function
    End If
 
    ReDim b(max) As Byte, ll&(Fix(max / Log(max) * 2))
    n = 1
    ll(0) = n: ll(n) = 2
    For i = 3 To Fix(Sqr(max)) Step 2
        If Not b(i) Then
            n = n + 1: ll(n) = i
            For ii = i * i To max Step i + i: b(ii) = True: Next
        End If
    Next i
    For i = i To max Step 2
        If Not b(i) Then n = n + 1: ll(n) = i
    Next i
    ReDim Preserve ll&(n): Primes = ll
End Function

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы