Yazılarımı başlangıç seviyesinden ileri seviyeye doğru anlatmaya başlayacağım. Bu derste algoritma konusuna henüz yeni giren ve daha önce profesyonel düzeyde programlama ile uğraşmamış olan arkadaşlar için temel algoritmaları ele alacağım.
İlk olarak asal sayı nedir sorusundan başlayalım. Asal sayı bilindiği gibi 1 ve kendisinden başka hiç bir sayıya bölünemeyen sayıdır.
Bu tanımdan hareketle biz de sıfırdan başlayarak asal sayıların nasıl bulunduğunu kısaca gözden geçirelim.
Öncelikle verilen bir sayının bölenlerinin sayısını bulalım. Algotirmayı şu şekilde yazabiliriz.
1. n = girilen sayı
2. bolen_sayisi = 0
3. for i=1 to n
if (n mod i) = 0 // tam bölünüyorsa
bolen_sayisi = bolen_sayisi + 1 // bölen sayısını bir arttır.
4. print(bolen_sayisi)
yukarıdaki yazılan algoritma basit düzeyde bir tam sayının tam bölenlerinin sayısını bulmatadır. Örneğin
10 sayısı için 1,2,5 ve 10 sayılarına bölüneceğinden bölen sayısı 4
11 sayısı için 1 ve 11 sayılarına bölüneceğinden bölen sayısı 2 olcaktır.
Şimdi algoritmamızı biraz daha geliştirelim. 1 ve kendinden başka bölen sayısını bulmaya çalışalım. Ozaman algoritmanın çalışma sınırlarını biraz değiştirmemiz gerekecek. yani 2 den başlayarak sayının bir eksiğine kadar gitmemiz yeterli olacak.
Yeni algoritma
1. n = girilen sayı
2. bolen_sayisi = 0
3. for i=2 to n-1
if (n mod i) = 0 // tam bölünüyorsa
bolen_sayisi = bolen_sayisi + 1 // bölen sayısını bir arttır.
4. print(bolen_sayisi)
Yeni yazılan algoritmada 10 sayısı için 2 ve 5 i bölen olarak alacak ve bölen sayısı 2 olacaktır.
11 sayısı için bölen sayısı 0 olacaktır.
Son olarak algoritmaya bölen sayısı 0 olursa asal sayıdır diyebileceğimiz bir satır eklersek işlem tamamlanmış olacak.
Yeni algoritma
1. n = girilen sayı
2. bolen_sayisi = 0
3. for i=2 to n-1
if (n mod i) = 0 // tam bölünüyorsa
bolen_sayisi = bolen_sayisi + 1 // bölen sayısını bir arttır.
4. print(bolen_sayisi)
5. if bolen_sayisi = 0
print('sayı asaldır')
else
print('sayı asal değildir')
Bu şekilde bir sayının asal olup olmadığı rahatlıkla bulunabilir.
Bu dersi hazırlarken algoritma konusuna henüz yeni başlayanları dikkate aldım. Elbetteki bu algoritmalar daha iyi şekilde yazılabilirler. Daha gelişmiş ve dahi iyi olan yöntemleri daha sonraki derslerimizde vermeye çalışacağım.
Bir sonraki dersimizde görüşmek üzere
Not : Bu içerik aynı zamanda CETURK.com sitesinde de yayınlanmaktadır
Hiç yorum yok:
Yorum Gönder