java-dizi-icindeki-asal-sayilari-bulma-2

Java – Dizideki Asal Sayıları Bulma

Merhaba arkadaşlar, bu örneğimizde rastgele oluşturulan tek boyutlu dizi içindeki asal sayıları bulup yazdıran programı göstereceğim. Bu örnek ile iç içe for döngüsünün mantığını kavrayacaksınız.

Asal Sayı Nedir?

Asal sayılar, sadece kendisi ve 1 sayısına bölünebilen 1’den büyük pozitif tam sayılar biçiminde tanımlanırlar. Asal sayıların 1 ve kendisinden başka tam böleni yoktur. O halde bir sayı 2 defa bölünüyor ise bu sayıya asal sayı diyebiliriz. Fakat 2den fazla tam(0 kalanlı) bölünüyorsa asal sayı değildir. Mesela 8 sayısı 1,2,4 ve 8 ile tam bölünüyor yani asal değil. Fakat 7 sayısı sadece 1 ve 7 ile tam bölünüyor yani asal sayı diyebiliriz. Asal sayı mantığı bu şekildedir. Bu mantık üzerinden örneğimizi yapabiliriz.

Algoritma adımlarından teorik olarak sırayla bahsedelim:

  1. Dizimizi tanımlayalım.
  2. Asal sayıları bulmak için sayaç değişkenimizi tanımlayalım.
  3. For döngüsü ile oluşturduğumuz dizinin içini rastgele sayılarla dolduralım.
  4. Dizimizin içini doldurduktan sonra yeni bir for döngüsü daha açalım. Bu for döngüsü her sayıyı kontrol etmek için olsun ve dizinin uzunluğu kadar dönsün.
  5. Üstteki for döngüsünün içine yeni bir for daha açalım. Bu döngü ise sayının asal olup olmadığını kontrol etmek için dönsün. Bu döngü sayının asal olup olmadığını kontrol edeceği için 1 den başlayıp kontrol ettiğimiz sayıya kadar dönmesi gerekiyor. Yani 29 sayısının asal olup olmadığını anlamamız için 1 den başlayıp 29 a kadar bölmemiz gerekir. Eğer 1 den ve kendisinden başka böleni yoksa bu sayı asaldır. Bunu kontrol etmek için ise sayaç değişkenini kullanacağız.
  6. Eğer dizinin elemanı 0 kalanlı bölünüyorsa sayacı 1 arttırıcaz.
  7. Asal sayı olup olmadığını kontrol ettiğimiz for döngüsünün dışında ise sayaç değişkeninin 2 den büyük olup olmadığını kontrol edicez.
  8. Eğer sayaç 2ye eşitse yani kontrol ettiğimiz sayı 2 defa tam bölünmüşse bu sayı asaldır diyebiliriz.

Kodlarımıza Geçelim;

	public static void main(String[] args) {
		int[] dizi = new int[10]; 
		int sayac = 0;
		int i;

		Random r = new Random();

		for( i=0; i<10; i++) {
			dizi[i] = r.nextInt(50)+1; 
			System.out.print(dizi[i]+ "-");
		} 
		System.out.println();

		for(int x=1; x<dizi.length; x++)
		{
			sayac = 0;
			for(int j=1; j<=dizi[x]; j++) 
			{			
				if((dizi[x]%j)==0) 
				{
					sayac++;				
				}
			}
			if(sayac==2 )
			{ 
				System.out.println(dizi[x] + " asal sayıdır");

			}
		}
	}

java-dizi-icindeki-asal-sayilari-bulma

Sorunuz olursa sormaktan çekinmeyiniz.

JAVA İLE YAZDIĞIMIZ DİĞER ÖRNEKLERİ GÖRMEK İÇİN TIKLAYINIZ.

Hakkında: admin

Yönetim Bilişim Sistemleri öğrencisi. Öğrendiği bilgileri elinden geldiğince paylaşmaya çalışıyor.

İLGİNİZİ ÇEKEBİLİR

unity-kod-tamamlama-sorunu-visual-studio

Unity – Visual Studio Kod Tamamlama Sorunu [Çözüm]

Merhaba, Unity ile oyun geliştirirken Visual Studio üzerinden C# kullanıyoruz. Bildiğimiz üzere Unity’nin kendine has …

Subscribe
Bildir
guest
1 Yorum
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Mehmet Aydın
6 ay önce

İç içe iki for döngüsü olduğu için n kare karmaşıklığındadır. n2’siz yapmak da mümkün olabilir belki. Ama nasıl olursa olsun yaklaşım olarak mod 0’ı almak mantıklı olacaktır