Logo Background

Asal Sayı Bulma Programı

  • Written by ElektronikElektronik 1 Yorum Var1 Yorum Comments
    Last Updated: Aralık 9, 2009

    asalsayiprogrami

    1 ‘den TextBox ‘a girdiÄŸiniz sayıya kadar asal sayıları ListBox ‘a ve dosyaya yazdıran . Açıklamalar kod dosya içerisinde de verilmiÅŸtir.  exe yani derlenmiÅŸ hali ektedir. istenirse kod dosyalarınıda ekleyebilirim. Zaten programın kodları aÅŸağıda mevcut.

    ?View Code CSHARP
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Collections;
    using System.Windows.Forms;
    using System.IO;
     
    /*
     * 
     * www.xdelete.com 
     * 
     */
    namespace AsalSayiBul
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    foreach (int eleman in asalkontrol())
                        listBox1.Items.Add(eleman.ToString());
                }
                catch
                {
                    MessageBox.Show("Aktarım Sırasında Hata oluştu");
                }
            }
     
            // 1 'den istediğimiz sayıya kadar kontrol edeceğimiz sayi dizini oluşturuyoruz.
            public int[] sayidizisiolustur()
            {   int sayi=0;
                int[] sayidizi = new int[Convert.ToInt32(tbSayi.Text)];
                for (int i = 0; i < (Convert.ToInt32(tbSayi.Text)); i++)
                {
                    sayi++;
                    sayidizi[i] = sayi;
                }
                return sayidizi;
            }
     
            /****************************************************
             ***Asal sayılarımızı oluşturacağımız fonksiyon.. ***
             ****************************************************
            Bir sayı kendisinin karaköküne kadar olan sayılardan herhangi birine bölünmüyorsa, 
            karakökünden sonraki sayılara bölünme ihtimali de yoktur.
            Eğer karaköküne kadar tam bölünemeyen sayı varsa bu sayıları ASAL SAYI olarak alacağız..
             * oyüzden dizimizdeki her sayının karakökünü bulacağız, daha sonra bu karaköke kadar
             * sayiyi 2 den başlatarak 1 'er 1'er artırarak modunu alacağız eğer mod sıfıra eşitse
             * sayı bölünüyor demektir. ve bu sayı asal sayı değildir.
             * Eğer sayı bölünüyorsa break komutuyla diğer sayılara böldürmeden işlemi sonlandırıp bu sayıyı
             * dizimize kaydetmemek için, sonuc değişkenini true yapacağız.
             * Böylece asaldizimize bu sayı kaydolmayacak..
            Asal sayı: 1 ve kendisinden başka böleni olmayan sayıdır...
            */
            public ArrayList asalkontrol()
            {
                // Asal sayılarımızı kaydedeceğimiz dizimiz..
                ArrayList asalsayilar=new ArrayList(); 
                int karakok=0;
                // Sayi dizisinin içerisindeki elemanların hepsini kontrol edeceğiz..
                foreach (int eleman in sayidizisiolustur())
                {
                    bool sonuc = false;
                    // Karakökü küsüratlı olan sayı double olacağından dolayı,
                    // hata verecektir. Buyüzden INT tipine çevirdik ve küsüratlı olan kısmı almadık.  
                    karakok = Convert.ToInt32(Math.Sqrt(eleman));
                    //2 'den başlatarak her sayıyı kendi karaköküne kadar böleceğiz. 
                    for (int i = 2; i < (karakok+1); i++)
                    {
                        if (eleman % i == 0)
                        {
                            // Eğer tam bölünürse döngüden çıkıyoruz... 
                            sonuc = true;
                            break;
                        }
                    }
     
                    // Eğer sayı tam bölünmemişse sonuc=false olacak ve dizimize
                    //ekleyeceÄŸiz.. Åžayet eleman 1 ise dizimize eklemeyeceÄŸiz..
                    if(sonuc==false & eleman!=1)
                        asalsayilar.Add(eleman);                
                }
                return asalsayilar;
            }
     
     
            private void button2_Click(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
            }
            // Dosyaya yazdırma işlemi
            private void button3_Click(object sender, EventArgs e)
            {
                try
                {
                    saveFileDialog1.Title = "Sonuçları Dosyaya Kaydet";
                    saveFileDialog1.DefaultExt = ".txt";
                    saveFileDialog1.InitialDirectory = @"c:\";
                    saveFileDialog1.ShowDialog();
                    FileStream dosya = new FileStream(saveFileDialog1.FileName, FileMode.Create);
                    StreamWriter dosyayaz = new StreamWriter(dosya);
                    foreach (int eleman in asalkontrol())
                        dosyayaz.WriteLine(eleman.ToString());
                    dosyayaz.Close();
                    dosya.Close();
                    MessageBox.Show(saveFileDialog1.FileName + " \nDosyasına Başarıyla Yazıldı");
                }
                catch
                {
                    MessageBox.Show("Dosya oluşturma sırasında hata oluştu.\nDosya kaydedilemedi..", "Hata Oluştu !",MessageBoxButtons.OK,MessageBoxIcon.Error,MessageBoxDefaultButton.Button1);
                }
     
     
     
            }
     
        }
    }
    Asal Sayı Bulma Programı 1 den istediğiniz sayıya kadar olan tüm asal sayıları bulur.

  • Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/xdelete/public_html/forum/cache/data_c1176e3b86b838cc919e441a620ca4b6-SMF-modSettings.php on line 1

    Parse error: syntax error, unexpected ':' in /home/xdelete/public_html/forum/cache/data_c1176e3b86b838cc919e441a620ca4b6-SMF-modSettings.php on line 1