Yazdığım asal sayı programı yüksek sayılarda yavaşlıyor

Başlatan bekdemir, 07 Temmuz 2014 - 02:00:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

bekdemir

int i, a, b, top, j;

            a = Convert.ToInt32(textBox1.Text);

            b = Convert.ToInt32(textBox2.Text);

            for (i = a; i <= b; i++)

            {

                top = 0;

                for (j = 1; j <= i; j++)

                    if (i % j == 0)

                         top = top + 1;

                if (top == 2)

                    listBox1.Items.Add(Convert.ToString(i));


elimde böyle bir c# asal sayı kodu var yüksek rakamlara çıktığım zaman proğram çok yavaşlıyor
hızlandırmak için bir yöntem varmı acaba ?
derin olan kuyu değil,kısa olan iptir.

7hr33l3t73r

#1
Linux altinda calistiriyorsaniz bu durum normal karsilanabilir.Mono gelismekte olan bir sistem sonucta..
Onun yerine makine diline yakin bir programlama kullanabilirsiniz.(asm,c,c++)
Sonucta iki sayi arasindaki asal  sayilari bulmak icin internette yeterince ornek kaynak kod mevcut.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

ekremsenturk

Aşağıdaki iki satırı sil. Gereksiz işlem yapıyorlar.


  a = Convert.ToInt32(textBox1.Text);

b = Convert.ToInt32(textBox2.Text);


@l0n3w0lf Linux gelişmekte olan değil, sürekli gelişen bir sistem. Windows'ta ise tersine, sürekli yama üstüne yama eklenir. Sistemi yenilemekten daha az maliyetli olmalı. Dolayısı ile Windows git gide yavaşlar. Bu nedenle bir çok (bilinçsiz) Windows kullanıcısı otomatik güncellemeleri kapatırlar.

7hr33l3t73r

Ben gelismekte olan sistem derken Mono'dan  bahsetmiştim.Yanlis anlasildim herhalde.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

ekremsenturk

Mono'nun eksik görülebilinecek yönleri, Netframework'ün ara sürümlerini desteklememesi ve GNU lisanslı olmayan dll kütüphanelerini Mono'da bulunmaması. Her .NET programı, hangi .NET sürümü ile derlenmişse, o sürüm kurulu olmadığı sürece, çalışmaz. Mono, 2.0, 3.0, ve son sürümünde 4.0'ü destekler.  Programın hangi dilde yazılmış ve derlenmiş olmasının bir önemi yok.  Ek olarak, Mono derleyicileri ile derlenen programların GNU Lisansı gereği, kaynak kodlarının da paylaşılmaları gerekmesi. Bunlar bir sorun teşkil etmiyorsa, Mono kararlı bir .NET alternatifi. Mono'un tercih edilecek yönleri, var olan sürümü kuruyorsunuz ve önceki Mono sürümlerinide destekliyor ve de .Netframework'den daha az disk alanı kaplıyor.


C# için önerebileceğim bir kaynak : Fundamentals-of-Computer-Programming-with-CSharp-Nakov-eBook-v2013.pdf

7hr33l3t73r

Alıntı yapılan: ekremsenturk - 08 Temmuz 2014 - 11:32:41
Aşağıdaki iki satırı sil. Gereksiz işlem yapıyorlar.


  a = Convert.ToInt32(textBox1.Text);

b = Convert.ToInt32(textBox2.Text);

Bu arada yukarida belirtiginiz kodlari cikarmasi birsey degistirmeyecektir.
Paylasilan kodlarin devamida olmasi lazim.
Yukarida ki kodlar sadece metin kutululari o bolumlere yazilan sayilarin arasinda ki asal sayilari bulmaya calisiyor program.
dc -e '[q]sa[ln0=aln256%Pln256/snlbx]sb207356256404211981204295703670388snlbxq'
https://www.getgnu.org/gnulinux/gnulinux-ipuclari/nasil-akillica-soru-sorulur.html

ekremsenturk

Programın sorunu yavaşlamasıymış. Program çalışmıyor veya hata veriyor denilmiyor. "İnt"i "İnt"e dönüştürmek, fuzuli bir işlem.