Herkese merhaba.
Eğitim hayatımızın hemen hemen her matematiğinde karşılaştığımız bir konudan bahsedeceğiz bugün. Asal sayılardan… Kısaca bu sayılarımızı bir hatırlayalım.
Asal sayılar, sadece kendisine ve 1’e bölünebilen sayılardır. İlk 15 asal sayı şunlardır:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
Şimdi gelin, belirleyeceğimiz sayı aralıklarında bulunan asal sayıları belirleyen programı yazalım.
- İlk adımda klavyeden veri girişini sağlıyoruz.
- Bulmak istediğimiz asal sayılar hangi değerler arasında olacak?
- Küçük değeri a olarak belirlediğimiz değişkene, büyük değeri de b olarak belirlediğimiz değişkene atadık. Böylece a ve b değerleri arasındaki asal sayıları bulacağız.
- İkinci adımda a ve b’nin 0’dan büyük olduğu durumlarda işlemin gerçekleşeceğini if yapısı ile belirliyoruz.
- Daha sonra sayaç ismini verdiğimiz bir değişken atıyoruz. Bu değişkenimiz daha sonraki işlemlerimizde asal sayıyı bulmamızı sağlayacak.
- For döngüsüyle a değerinden başlayarak, b’ye kadar olan sayıların asal olup olmama durumunu inceleyeceğiz böylece.
- Sayaç adlı değişkenimizi 0’a eşitliyoruz. Böylece asal olan sayılar sayaç=0 atamasıyla belirlenecek.
- İkinci for döngümüzde sayıları sırayla birbirlerine bölüyoruz.
NOT: Buradaki döngüyü 2’den başlattık çünkü tüm sayılar 1’e bölünüyor. Zaten 1 değerinden başlatırsanız programımız istediğimiz şekilde çalışmayacaktır.
- Diğer kısımda if karar yapısı sayesinde i. Elemanın j. Elemana bölündüğünde kalanın 0’a eşit olup olmadığını yani kalan verip vermediğini test ediyoruz. Eğer 0’a eşit ise sayı asal değildir çünkü kendisi ve 1’den başka sayılara da tam bölünür.
- Daha sonra sayaç değerimizi 1 arttırıyoruz. Böylece asal sayı olmadığını belirtmiş olduk.
- Bir sonraki adımımızda tekrar if yapısını kullanıyoruz. Buradaki koşulumuz atadığımız sayaç değişkeniyle ilgili. Sayaç değerimiz 0’a eşitken yani sayı asal ise system.out.println komutuyla sayıyı konsola yazdırıyoruz.
Buna göre çıktılarımız şu şekilde olabilir:
Son olarak da programın tam halini atalım:
Umarım yardımcı olabilmişimdir. Bir sonraki yazımda görüşmek üzere 🙂
Leave a Reply