Excel Macro İle Girdiğimiz Sayıdan Küçük En Büyük Asal Sayıyı Bulma

Merhabalar,
bu yazımda size Excel VBA ile girdiğimiz input değerinden küçük en büyük asal sayıyı bulan macroyu açıklayacağım.



Sub asal()
Dim say As Integer
git:
'input ile klavyeden sayı alıyoruz
say = InputBox("sayı giriniz")
'girdiğimiz değerin sayı olup olmadığının kontrolünü yapıyoruz
If (IsNumeric(say) = True) Then
'girdiğimiz değerden küçük dediği için öncelikle 1 azaltırız
say = say - 1
' For-Next döngüsü ile sayıyı azalta azalta ilerleriz
For i = say To 1 Step -1
 Dim sonuc As Boolean
    'sayımızı asal sayı kontrolü yapan functionımıza gönderiyoruz ve gelen boolean sonuca göre işlem yapıyoruz
    sonuc = asalmi(say)
 If (sonuc = True) Then
'eğer sayı asalsa msgBox üzerinde sonucu gösteriyoruz ve for-next döngüsünden çıkıyoruz
    MsgBox "girdiğiniz değerden en küçük asal sayı=" & say
    Exit For
     End If
 'sayı asal değilse bir azaltılıp tekrar döngüye girer
     say = say - 1
Next i
Else:
'inputbox a girdiğimiz değer asal değilse tekrar giriş yapması için goto döngüsünü kullanıyoruz
MsgBox "girdiğiniz değer sayı değildir lütfen kontol ediniz", vbInformation
GoTo git
End If

End Sub
' asal sayı kontrolü yapan Function
Function asalmi(sayi As Integer) As Boolean
   
        Dim sayac As Integer
        sayac = 0
        For k = 1 To sayi
          If (sayi Mod k = 0) Then
               sayac = sayac + 1
       End If
       Next k
     
        If (sayac <= 2) Then
       
            asalmi = True
         
        Else
         'Eğer sayaç 2den büyükse kendisi ve 1 dışındaki sayılara bölünebilmiş demektir yani asal değildir.
            asalmi = False
        End If
     
End Function

Yorumlar

Bu blogdaki popüler yayınlar

Excel VBA ile Farklı Excel Dosyalarını Bir Excelde Birleştirmek

SQL ROW_NUMBER() ile Tekrarlı Satırları Silmek

T-SQL Trigger(tetikleyici) Örnekleri