Asal Sayilar v1.0
____________________________________________________________________Geçenlerde İnternet’te dolaşırken ufak bir bilgisayar performans testi uygulamasına rastladım. Yaptığı 1 ile 250 bin arasındaki asal sayıları tespit ederek bu asal sayıları, bulduÄŸu sayı adedini ve bu iÅŸlemin süresini ekranda göstermekti. Bu ÅŸekilde de 1 ile 250 bin arasındaki asal sayı bulma iÅŸlemini yaptığı süreyi performans göstergesi olarak alabiliyorsunuz. (Benim P4 2.8 bilgisayarımda sonuç 72 ile 52 saniye arasında deÄŸiÅŸiyordu. 🙂 ) Ben de bu testi cep telefonuna uyarlamak istedim ve yaptım. 🙂 Sonra da buna bir de test dışında kullanıcının kendi asal sayı kontrolü yapabilsin ve de farklı sayılar arasındaki asal sayı sayısını bulma fonksiyonunu ekledim; bu ÅŸekilde de Asal Sayilar v1.0 doÄŸmuÅŸ oldu.

Asal Sayilar v1.0 (Ekran görüntüsü İngilizcedir).
Asal Sayilar geliştirmeyi düşündüğüm bir proje değil şimdilik, zira çok faydalı bir şey olsa şimdiye kadar yapılırdı. 🙂 Sadece ara sıra kendi ihtiyaçlarım doğrultusunda bir gereklilik görürsem yeni birşeyler eklerim. Tabi uygulama performans testi dışında birinin bir işine yarayıp da (ki sanmıyorum) birşeyler eklememi falan isterse olabilir tabi.
Asal Sayilar daha çok sayıda cihazda kullanılabilmesi için Java ME platformunda MIDP 1.0 ve CLDC 1.0 gereksinimleriyle basit bir uygulama, annemin telefonunda bile çalışır. 🙂 Bellek olarak 512 KB altı ile denemedim ama 250 KB ile bile sorunsuz çalışacaktır eminim. Boyut olarak da 10 KB kadar bir boyutta ancak telefonunuzun sanal makine türüne göre bu 15 – 20 KB boyuta kadar çıkabilir (Aman çok da önemli 🙂 ).
Kullanım kısmını uygulamanın kendine yazdığım kullanım sayfasından alıyorum:
Asal Sayilar v1.0. Bu uygulama öncelikle bilgisayarda 1 ile 250 bin arasında asal sayı sayımı süresini ölçen bir performans testi uygulamasından fikirle yapıldı ancak daha sonra asal sayı kontrolü özelliÄŸi de eklendi. Cep telefonu için zaman alıcı olduÄŸundan (416 MHz iÅŸlemcili PXA270 Toshiba Portégé G500’de 100 saniye.) test 1 ile 250 bin yerine 100 bin ile yapılıyor.
1 – Uygulamayı 999,999,999’dan küçük sayıların asal sayı olup olmadığını kontrol etmek için kullanabilirsiniz. Bunun için ‘Asallık kontrolü’ kutucuÄŸuna bir sayı girip ‘Asallık kontrolü’ komutu verin. Sonuç aÅŸağıda gösterilecektir.
2 – Uygulamayı belirli iki sayı arasındaki asal sayı sayısını bulmak için kullanabilirsiniz. Bunun için ‘Alt sınır’ ve ‘Üst sınır’ kutucuklarını doldurun ve ‘AS say’ komutu verin. Alt sınır olarak küçük sayıyı ve üst sınır olarak da büyük sayıyı girin. EÄŸer bir alt sınır girmezseniz alt sınır 1 kabul edilecektir.
3 – ‘Dur’ komutu o anda çalışan asal sayı sayma iÅŸlemini durdurur. BaÅŸlattığınız iÅŸlem tamamlanmadan diÄŸer fonksiyonları kullanmak istiyorsanız önce iÅŸlemi durdurmanız gerekir.
4 – ‘Test’ komutu cihazınızın 1 ve 100,000 arasındaki asal sayı sayısını bulma hızını belirler. Sonuç milisaniye cinsindendir ve cihaza göre birkaç dakika alabilir. 250 bine kadar asal sayı bulma hızını test etmek isterseniz sadece ‘Üst sınır’ kutucuÄŸuna 250000 yazıp ‘Girdiyi iÅŸle’ komutu verebilirsiniz. Yalnız bu iÅŸlem çok uzun sürecektir.
5 – Asal sayı bulma iÅŸleminde sonuçlardan baÅŸka iÅŸlem süresi de milisaniye cinsinden gösterilir.
Not: Aralarındaki farkı büyük olan iki sayı arasında asal sayı sayımı yapmak cihazınıza göre uzun sürebilir. Bu sebeple abartılı büyük sayılar yazmamanız iyi olur. Yoksa işlemciniz yavaşsa şarjınız işlem bitmeden daha önce bitebilir. 🙂
Sayma iÅŸlemini durdurmak için ‘Dur’ komutunu kullanabilirsiniz.
Ekran görüntüsünde uygulama dili İngilizce ancak telefonunuzun dil ayarı Türkçe ise dili Türkçe olacaktır. Eğer Türkçe değilse dil ayarı ne olursa olsun İngilizce olacaktır. Bunun için bir ayar koymadım.

Asal Sayilar v1.0 performans testi.
Performans testini 1 ile 100,000 arasında asal sayı saydırarak yapıyorum çünkü 1 ile 250 bin arasında asal sayı sayımını telefonda yapmak oldukça fazla zaman alabilir. Mesela 416 MHz Marvell PXA270 iÅŸlemcili Toshiba Portégé G500 telefonumda 100,000’e kadar test yaklaşık 17 – 18 saniye (17 – 18 bin milisaniye) sürerken 250,000 ile 100 saniye yani bir buçuk dakika sürüyor. 🙂 (Not: Burada P4 2.8 GHz iÅŸlemcinin PXA270 416 MHz iÅŸlemciden sayı sayma, toplama ve basitçe hesaplama konusunda iki kat daha iyi olduÄŸunu öğreniyoruz. :D) Kendiniz isterseniz üst sınır kutucuÄŸuna 250,000 yazarak 1 ile 250,000 arasında da test yapabilirsiniz. Ya da 999,999,999’dan küçük olduÄŸu sürece istediÄŸiniz sayıyla bunu yapabilirsiniz ama en hızlı telefonla bile bir saatten fazla sürecektir. 🙂
Performans testi sonuçları donanım ve yazılımına bağlı olarak cihazdan cihaza ve aynı cihazdaki farklı sanal makineler arasında bile değişecektir. JIT, AOT, Jazelle gibi hızlandırma kullanan sanal makineler ile kodu doğrudan çalıştıranlardan daha iyi olabilir. Ayrıca Symbian ve Windows Mobile gibi işletim sistemlerinde o işletim sistemine özel hazırlanmış benzer bir programda elde edilen sonuç bile değişik olabilir, çünkü Java programları işletim sistemi üzerindeki farklı bir platformda kodları birkaç defa daha fazla işlenerek çalışan programlardır. İsteyen sonuçlarını buraya yazabilir.

Asal Sayilar asal sayı kontrolü.
İndirme:
Ana program dosyası:
İndir “Asal_Sayilar (JAR)”
Asal_Sayilar_v11.jar – 120 defa indirildi – 11 KBKurulum için gerekli olabilecek bilgi dosyası:
İndir “Asal_Sayilar (JAD)”
Asal_Sayilar.jad – 115 defa indirildi – 450 B
Yazan: Murat
, 17 AÄŸustos 2009 @ 12:56 am
Ellerinize sağlık ferhad bey. Birilerinin işine yarayacaktır eminim. Fakat en basit anlamda cep telefonuna performans testi yapma fikri bile başlı başına bir uç noktadır benim gözümde. o yüzden sizi tekrar kutluyorum.
Yazan: FeRHaD
, 17 AÄŸustos 2009 @ 2:19 am
Teşekkürler.
Yazan: rıdvan
, 18 Ekim 2009 @ 7:07 pm
ben denedim daha önceden asal sayılara ulasmak için bulunan bir denklem var ve o denkleme göre ulastıgım asal sayılara bu program asal sayı demiyor belli ki bazı hataları var, 2 üzeri n eksi 1 bir (n = asal olmak şartı ile ) her sayı asaldır. mersenne asal sayılar denir ve formülüde budur 2^n-1
Yazan: FeRHaD
, 19 Ekim 2009 @ 12:42 am
Rıdvan bu sayılara örnek verebilir misin? Ona göre hatayı bulup düzeltmem gerekli.
Yazan: rıdvan
, 31 Aralık 2009 @ 4:37 pm
mesela 2 üzeri 23 eksi bir in marsenne teoremine göre asal sayıdır, 23 bir asal sayı oldugundan ötürü. 2^23-1 = 8388607
Yazan: rıdvan
, 31 Aralık 2009 @ 4:43 pm
pardon ben 1 ile 250 bin arası kısmını kacırmısım
Yazan: FeRHaD
, 31 Aralık 2009 @ 8:05 pm
Rıdvan 250 bin ile sınırlı değil, 999,999,999 ile sınırlı asal sayı sorguları. 1 ile bu sayı arasında istediğin sayıyı kontrol edebilirsin.
Yukarıda örnekte verdiÄŸin sayı ise 47’ye bölünebildiÄŸinden asal sayı olmuyor, bölünmede 178481 sonucu çıkıyor.
Bunun dışında benim matematiğim pek iyi değil, farklı bir bölümde okuyorum ve asal sayı problemlerinde de pek başarılı olduğum söylenemez. 😀