Program Döküm Eki sayı 5, sayfa 8

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 8

Bilgisayar dünyasının, üstünde en çok tartışılan konularından biri de, asal sayıların bilgisayarlar tarafından nasıl en hızlı ve kısa biçimde (bir başka deyişle en rasyonel biçimde) bulunabileceği olmuştur. Biz de bunun BASIC ve makine dilindeki çeşitli çözümlerini sunuyoruz. Bunu yaparken özellikle bazı öğrenci arkadaşlara yardımcı olmayı umuyoruz.

Bilindiği gibi, asal sayılar sadece kendilerine ve 1'e bölünebilen sayılardır. 2'den başlayarak sonsuza dek giderler (2,3,5,7,11,13,17...). Matematiksel olarak, her asal sayıdan sonra en az bir asal sayı daha olduğu ispatlanmıştır.

Elimize kağıt kalemi alıp asal sayıları bulurken başlangıçla zorlanmayabiliriz, ama şu sayıların da birer asal sayı olduklarını hesaplayabilir miydiniz?

1201, 9721, 379721, 66369101

Bir diğer konu da, verilen bir sayıyı asıl çarpanlarına ayırmaktır. Örneğin 1470=2*3*5*7↑2. Ancak şunları elle hesaplayabilir miydiniz?..

1197=3↑2*7*19

1234567=127*9721

9876543210=2*3↑2*5*17↑2*379721

İşte, bu tip problemlerin çözümü günümüzde bilgisayarlara bırakılmıştır. Biz de COMMODORE 64'ümüzü bu işte kullanabiliriz.

Önce belli bir sayıya kadar olan tüm asal sayıların listesini elde etmek problemiyle uğraşalım. Bunun için, günümüzde de hâlâ geçerliliğini koruyan en basit yöntemi MÖ 3. yüzyılda yaşamış olan Eratosthenes önermiştir. Yöntem çok basittir: Önce tüm sayıların bir listesini yaparız, sonra başlarız bunları yazmaya. Ama her sayıyı yazdıktan sonra, o sayının tamkatlarını listemizden sileriz. Böylece yazacağımız sayılar, aradığımız asal sayılar olacaktır.

İşte bu yöntemi, ASAL SAYILAR programı ile gerçekleştirdik.

10: Üst sınır kullanıcıdan isteniyor. Ancak bu sayının 19000'den küçük olması gerekmekte, yoksa bilgisayarın hafızası yetmemektedir.

20: Programın çalışmasını hızlandırmak için, 1 ve 0 değerleri değişkenlere yerleştiriliyor. Sonra da tüm sayıların listesinin yerini tutacak matris oluşturuluyor. Bu matrisin herhangi bir elemanının 1 olması, o elemanın karşılık geldiği ve indis tarafından gösterilen

Klavyeyle gezinmek için ← ve → tuşları.