53 lines
1.2 KiB
Plaintext
53 lines
1.2 KiB
Plaintext
Const limite = 30
|
|
Dim Shared As Integer n, A(limite + 1)
|
|
|
|
Function Used(m As Integer) As Boolean 'Return 'True' if m is in array A
|
|
For i As Integer = 1 To n - 1
|
|
If m = A(i) Then Return True
|
|
Next i
|
|
Return False
|
|
End Function
|
|
|
|
Function MinFactor(num As Integer) As Integer 'Return minimum unused factor
|
|
Dim As Integer factor, valor, min
|
|
|
|
factor = 2
|
|
min = &H7FFFFFFF
|
|
Do
|
|
If num Mod factor = 0 Then 'found a factor
|
|
valor = factor
|
|
Do
|
|
If Used(valor) Then
|
|
valor+ = factor
|
|
Else
|
|
If valor < min Then min = valor
|
|
Exit Do
|
|
End If
|
|
Loop
|
|
num \= factor
|
|
Else
|
|
factor += 1
|
|
End If
|
|
Loop Until factor > num
|
|
Return min
|
|
End Function
|
|
|
|
Sub EKG(m As Integer) 'Calculate and show EKG sequence
|
|
A(1) = 1: A(2) = m
|
|
For n = 3 To limite
|
|
A(n) = MinFactor(A(n - 1))
|
|
Next n
|
|
Print Using "EKG(##):"; m;
|
|
For i As Integer = 1 To limite
|
|
Print Using "###"; A(i);
|
|
Next i
|
|
Print
|
|
End Sub
|
|
|
|
Dim starts(4) As Integer = {2, 5, 7, 9, 10}
|
|
For i As Integer = 0 To 4
|
|
EKG(starts(i))
|
|
Next i
|
|
|
|
Sleep
|