Makale numarası: 202782 - Son Gözden Geçirme: 10 Ekim 2006 Salı - Gözden geçirme: 2.2

Nasıl yapılır: Prime numaralarını ya da Etkenler Al

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Bu makale şunlar için de geçerlidir:
  • Microsoft Excel for Windows 95 7.0|7.0
  • Microsoft Excel for Windows 95 7.0a|7.0a
  • Microsoft Excel for Windows 5.0|5.0
  • Microsoft Excel for Windows 5.0c|5.0c
  • Microsoft Excel for the Macintosh 5.0|5.0
  • Microsoft Excel for the Macintosh 5.0a|5.0a
Hepsini aç | Hepsini kapa

Özet

Asal yalnızca kendisi tarafından eşit olarak bölünebilir herhangi bir tamsayı ve bir sayıdır. Bir sayının tamsayı bu sayıya eşit olarak bölünebilir etkendir. Bu makale, Microsoft Visual Basic Applications makroları için kullanabileceğiniz tüm kısmen asal sayıların bir aralık belirlemek için veya tüm bir sayının etkene türetmek için Excel'in içerir.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Makroları oluşturmak hakkında bilgi için aşağıdaki adımları izleyin:

  1. Kaydedin ve tüm açık çalışma kitaplarını kapatın ve sonra yeni bir çalışma kitabı oluşturun.
  2. Yeni bir modül oluşturun:

    Microsoft Excel 97'de, ALT + F11 tuşlarına basarak Visual Basic Düzenleyicisi'ni başlatın.

    Microsoft Excel 5.0 veya 7.0, makro ve ModülEkle menüsünden'ı tıklatın.
  3. Aşağıdaki kodu modüle yazın:
       Sub GetFactors()
          Dim Count As Integer
          Dim NumToFactor As Single 'Integer limits to < 32768
          Dim Factor As Single
          Dim y As Single
          Dim IntCheck As Single
       
          Count = 0
          Do
             NumToFactor = _
                Application.InputBox(Prompt:="Type integer", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = NumToFactor - Int(NumToFactor)
             If NumToFactor = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf NumToFactor < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While NumToFactor <= 0 Or IntCheck > 0
          For y = 1 To NumToFactor
             'Put message in status bar indicating the integer being checked.
             Application.StatusBar = "Checking " & y
             Factor = NumToFactor Mod y
             'Determine if the result of division with Mod is without _
                 remainder and thus a "factor".
             If Factor = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
       
       Sub GetPrime()
          Dim Count As Integer
          Dim BegNum As Single  'Integer limits to < 32768
          Dim EndNum As Single
          Dim Prime As Single
          Dim flag As Integer
          Dim IntCheck As Single
          Count = 0
       
          Do
             BegNum = _
                Application.InputBox(Prompt:="Type beginning number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = BegNum - Int(BegNum)
             If BegNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf BegNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While BegNum <= 0 Or IntCheck > 0
       
          Do
             EndNum = _
                Application.InputBox(Prompt:="Type ending number.", Type:=1)
             'Force entry of integers greater than 0.
             IntCheck = EndNum - Int(EndNum)
             If EndNum = 0 Then
                Exit Sub
                'Cancel is 0 -- allow Cancel.
             ElseIf EndNum < BegNum Then
                MsgBox "Please enter an integer larger than " & BegNum
             ElseIf EndNum < 1 Then
                MsgBox "Please enter an integer greater than zero."
             ElseIf IntCheck > 0 Then
                MsgBox "Please enter an integer -- no decimals."
             End If
             'Loop until entry of integer greater than 0.
          Loop While EndNum < BegNum Or EndNum <= 0 Or IntCheck > 0
       
          For y = BegNum To EndNum
             flag = 0
             z = 1
             Do Until flag = 1 Or z = y + 1
                'Put message into Status Bar indicating the integer and _
                    divisor in each loop.
                Application.StatusBar = y & " / " & z
                Prime = y Mod z
                If Prime = 0 And z <> y And z <> 1 Then
                   flag = 1
                End If
                z = z + 1
             Loop
       
             If flag = 0 Then
                'Enter the factor into a column starting with the active cell.
                ActiveCell.Offset(Count, 0).Value = y
                'Increase the amount to offset for next value.
                Count = Count + 1
             End If
          Next y
          'Restore Status Bar.
          Application.StatusBar = "Ready"
       End Sub
    					
  4. Dosya menüsünde Kapat ve Microsoft Excel'e dön'ı tıklatın. Makroyu çalıştırmak istediğiniz çalışma sayfasına geçiş yapın ve etkene veya kısmen asal sayıların sütun oluşturmak istediğiniz bir hücreyi tıklatın.
  5. Araçlar menüsünden, makro ' nun üzerine gelin ve makrolar ' ı tıklatın.
  6. GetFactors ' ı tıklatın ve sonra da <a2>etmenleri elde etmek için Çalıştır</a2>'ı tıklatın.

    -VEYA-

    GetPrime ' ı tıklatın ve sonra da <a2>asal sayılarının listesini almak için Çalıştır</a2>'ı tıklatın.
Not: Bu makrolar, sayılar ve büyük sayılar için etken büyük bir aralığı için asal sayılarının bulabilirsiniz, ancak bu kodu çok uzun zaman alabilir. Bu nedenle, Makro çalışırken, ilerleme durum çubuğunu gösterir.

Referanslar

Visual Basic for Applications Yardım alma hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
163435  (http://support.microsoft.com/kb/163435/EN-US/ ) VBA: Kaynaklar Visual Basic for Applications programlama
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Kaynaklar Visual Basic for Applications programlama
Örnek kodu çalıştırma hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
173707  (http://support.microsoft.com/kb/173707/EN-US/ ) OFF97: Nasıl Knowledge Base makalelerini örnek kod Çalıştır
212536  (http://support.microsoft.com/kb/212536/EN-US/ ) OFF2000: Nasıl Knowledge Base makalelerini örnek kod Çalıştır

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 97 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowto KB202782 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:202782  (http://support.microsoft.com/kb/202782/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.