Girilen Sayının Asal Çarpanlarını Bulma

Girilen Sayının Asal Çarpanlarını Bulma

Merhaba arkadaşlar bugün sizlerle birlikte kullanıcıdan girilen bir sayının asal çarpanlarını bulan bir örnek JAVA uygulaması geliştireceğiz . Örnek projemizin kodlarını yazmaya başlamadan önce asal sayılar ve asal çarpanlar hakkında kısaca bilgi vermek istiyorum.


Asal Sayı Nedir

Asal sayılar sadece iki pozitif böleni bulunan pozitif sayılardır. Asal sayılar sadece kendisine ve 1 sayısına kalansız bölünebilmektedir. En küçük asal sayı iki (2) dir. Asal sayılar arasında sadece 1 tane çift asal sayı vardır oda iki (2) dir.

Asal Sayılar:

2, 3, 5, 7, 11, 13, 17, 19 şeklinde sonsuza kadar devam etmektedir.


Asal Çarpanlar Nasıl Bulunur?

Pozitif doğal sayımızı 1 sayısına eşit olana kadar kendisini tam bölen en küçük asal sayıya bölerek sayımızı asal asal çarpanlarını ayırıyoruz. Bu açıklamayı sizlere daha net anlayabilmeniz için aşağıdaki örneği inceleyebilirsiniz.

72 sayımızı 2.2.2.3.3 şeklinde asal çarpanlarına ayırabiliriz.

Evet bir pozitif doğal sayının asal çarpanlarına nasıl ayrıldığını da bu şekilde öğrenmiş olduk.

NOT: Negatif sayıların asal çarpanları yoktur.


Girilen Sayının Asal Çarpanlarını Bulma Örneği

Örneğimizde temel olarak Scanner sınıfını kullanarak kullanıcıdan sayı alacağız. Eğer Scanner sınıfı ile ilgili detaylı bilgiye ulaşmak isterseniz ilk örneğimizi inceleyebilirsiniz. Ardından aldığımız sayının pozitif olup olmadığını kontrol edeceğiz. Eğer sayımız pozitif bir sayı değilse kullanıcıya sayının pozitif bir sayı olmadığını belirteceğiz fakat sayımız pozitif bir sayı ise asal çarpanlarını bulacağız. Yapacaklarımızı da belirlediğimize göre algoritmamızı programa dökebiliriz.

İlk olarak projemize Scanner sınıfını dahil ediyor ve ardından bu sınıfımızda scan adında bir nesne türeterek sınıfımızı kullanmaya başlıyoruz.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
	}
}

Artık kullanıcıdan verileri alabileceğimiz bir scan nesnemizi ürettik. Artık aldığımız değerin hafızada tutulabilmesi için bir adet değişken oluşturalım ve kullanıcıdan bu değişkene bir değer girmesini isteyelim.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Asal çarpanlarına ayrılacak sayıyı giriniz: ");
		sayi = scan.nextInt();
		
	}
}

Kullanıcımızdan gelen değeri sayı isimli değişkenimize aktadık. Artık almış olduğumuz bu sayının kurallara uygun olup olmadığını kontrol edebiliriz.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Asal çarpanlarına ayrılacak sayıyı giriniz: ");
		sayi = scan.nextInt();
		if(sayi < 1)
		{
			//Girilen değer 0 veya negatif bir sayı ise bu blok çalışacaktır.
			
		} else {
			//Girilen değer pozitif bir sayı ise bu blok çalışacaktır.
			
		}
		
	}
}

Kurallarımızı da oluşturduğumuza göre artık kurallarımız içerisinde işlemler yapabiliriz. İlk olarak kurallara uymayan kullanıcı girişleri için kullanıcıya “Girdiğiniz sayı pozitif bir doğal sayı değildir.” şeklinde bir bilgilendirme mesajı yazalım.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Asal çarpanlarına ayrılacak sayıyı giriniz: ");
		sayi = scan.nextInt();
		if(sayi < 1)
		{
			//Girilen değer 0 veya negatif bir sayı ise bu blok çalışacaktır.
			System.out.println("Girdiğiniz sayı pozitif bir doğal sayı değildir.");
			
		} else {
			//Girilen değer pozitif bir sayı ise bu blok çalışacaktır.
			
		}
		
	}
}

Artık girilen sayılar kurallara uygun olduğunu kabul ederek. Asal çarpanları tespit edebilecek döngümüzü oluşturabiliriz. İlk olarak bir değişken oluşturarak en küçük asal sayımızı değer olarak atıyoruz. Artından bir adet while döngüsü oluşturabiliriz. While döngümüzde belirlememiz gerek şart kullanıcıdan alınan sayı 1 sayısına eşit olana dek döngüye devam etmesidir.

Döngümüz devam ederken içerisinde bir adet şart koymamız gerekmektedir. Bu şartımız sayımızın mod unu alıp sıfıra eşit olması durumunda ekrana çarpan değerini yazmaktadır. Eşit olmaması durumunda çarpan değerini bir arttırarak tekrar kontrol etmesini sağlamaktadır.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Asal çarpanlarına ayrılacak sayıyı giriniz: ");
		sayi = scan.nextInt();
		if(sayi < 1)
		{
			//Girilen değer 0 veya negatif bir sayı ise bu blok çalışacaktır.
			System.out.println("Girdiğiniz sayı pozitif bir doğal sayı değildir.");
			
		} else {
			//Girilen değer pozitif bir sayı ise bu blok çalışacaktır.
			
			int carpan = 2; // Bölen değerini hesaplamak
			while(sayi != 1)
			{ // Sayı bire eşit değilse döngüye devam et.
				if(sayi % carpan == 0)
				{ // Sayı carpan değişkenine tam bölünüyorsa eğer bu bloğu çalıştır.
					sayi = sayi / carpan; // Sayımızı carpan değişkenine bölerek yeni oluşan değeri sayi değişkenine aktar.
					System.out.println(carpan); //bulmuş olduğumuz carpan değerini ekrana yaz.
					carpan = 2; //carpan değerini tekrar en küçük asal sayıya eşitle.
				} else { //Sayı carpan değişkenine tam bölünMÜyorsa eğer bu bloğu çalıştır.
					carpan++; //carpan değerini bir arttır.
				}
			}
		}
	}
}

Örneğimizin Tüm Kodları

Örneğimizde bulunan kodların tamamının bir araya getirilmiş halidir.

import java.util.Scanner;
public class girilenSayiyiAsalCarpanlarinaAyirma {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int sayi = 0;
		System.out.println("Asal çarpanlarına ayrılacak sayıyı giriniz: ");
		sayi = scan.nextInt();
		if(sayi < 1)
		{
			//Girilen değer 0 veya negatif bir sayı ise bu blok çalışacaktır.
			System.out.println("Girdiğiniz sayı pozitif bir doğal sayı değildir.");
			
		} else {
			//Girilen değer pozitif bir sayı ise bu blok çalışacaktır.
			
			int carpan = 2; // Bölen değerini hesaplamak
			while(sayi != 1)
			{ // Sayı bire eşit değilse döngüye devam et.
				if(sayi % carpan == 0)
				{ // Sayı carpan değişkenine tam bölünüyorsa eğer bu bloğu çalıştır.
					sayi = sayi / carpan; // Sayımızı carpan değişkenine bölerek yeni oluşan değeri sayi değişkenine aktar.
					System.out.println(carpan); //bulmuş olduğumuz carpan değerini ekrana yaz.
					carpan = 2; //carpan değerini tekrar en küçük asal sayıya eşitle.
				} else { //Sayı carpan değişkenine tam bölünMÜyorsa eğer bu bloğu çalıştır.
					carpan++; //carpan değerini bir arttır.
				}
			}
		}
	}
}

Girilen sayının asal çarpanlarını Bulma örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yayımlayan

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir