Bu Blogda Ara

1 Mayıs 2022 Pazar

Excel'de Asal Sayıları Bulmak

Mehmet CANBULAT, asal sayıları bulmak için şu yöntemi paylaştı:



Kod:

Option Explicit
Public Sub AsalSayilariBul()
Dim baslangic As Date
Dim bitis As Date
Dim AsalSayilar() As Long
Dim m As Long
Dim Num As Long
baslangic = Now
Num = 1000000

Sayfa1.UsedRange.ClearContents

AsallariBul Num, AsalSayilar

Sayfa1.Range("A2").Resize(UBound(AsalSayilar), 1) = AsalSayilar()

bitis = Now

Debug.Print Format(bitis - baslangic, "hh:mm:ss")

End Sub
Private Sub AsallariBul(AsalSayisi As Long, AsalSayilar() As Long)

Dim adayAsal As Long
Dim idAsal As Long
Dim faktor As Long
Dim i As Long
Dim isAsal As Boolean

ReDim AsalSayilar(1 To AsalSayisi, 1 To 1)

AsalSayilar(1, 1) = 2: AsalSayilar(2, 1) = 3
idAsal = 3: adayAsal = 3

Do While idAsal <= AsalSayisi
    adayAsal = adayAsal + 2
    i = 2: isAsal = True
    Do
        faktor = adayAsal / AsalSayilar(i, 1)
        If faktor < AsalSayilar(i, 1) Then Exit Do
        If faktor * AsalSayilar(i, 1) = adayAsal Then isAsal = False: Exit Do
        i = i + 1
    Loop
    If isAsal Then AsalSayilar(idAsal, 1) = adayAsal: idAsal = idAsal + 1
Loop

End Sub


Tek veya iki boyutlu bir diziyi sayfaya yazdırırken kesinlikle iki boyutlu dizi tanımlaması yapmak gerekir; aksi halde sayfaya sadece dizinin ilk elemanı yazdırılır.

ReDim AsalSayilar(1 To AsalSayisi, 1 To 1)


Diziye veri yazdırılırken bu şekilde tanımlama yapılmalıdır.

AsalSayilar(i, 1) = degisken

Hiç yorum yok:

Yorum Gönder