Asal Sayı Bulma Programı
-
1 ‘den TextBox ‘a girdiÄŸiniz sayıya kadar asal sayıları ListBox ‘a ve dosyaya yazdıran program. 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.Asal Sayı Bulma Programı 1 den istediÄŸiniz sayıya kadar olan tüm asal sayıları bulur.
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); } } } }
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
