Не всичко за мен

Верую: неверник - следствие от прекомерната работа с продукти на Microsoft. Нямам девиз, нямам любимо ядене, пиене, книга, ... Знам какво обичам днес, но това изобщо не важи за утре. Мисля, че горе-долу стана ясно.

Търсене в този блог

събота, 14 януари 2012 г.

Прости числа - генератор на прости числа

Макроса по-долу генерира всички прости числа по-малки или равни на числото написано в клетка А1

Sub PrimeUpToA1()
'генерира всички прости числа по-малки или равни на числото написано в клетка А1
'резултатът се записва в колона 8 H като започва от ред 1, т.е. от клетка H1 надолу
Dim S() As Boolean
n = Sheet1.Cells(1, 1)
ReDim S(2 To n) As Boolean
For i = 2 To n
S(i) = True
Next i
For i = 2 To n / 2
If S(i) Then
k = 2
j = k * i
While j <= n
S(j) = False
k = k + 1
j = k * i
Wend
End If
Next i
m = 1
For k = 2 To n
If S(k) Then
Sheet1.Cells(m, 8) = k
m = m + 1
End If
Next k

End Sub

Няма коментари: