Java Asal Sayı Kontrol Programı – En Kısa Şekliyle

Defalarca kez bir sayının asal olup olmadığını bulmuşuzdur. Fakat bunu en kısa haliyle oluşturmak istedim. Sanırım bundan kısası da olamaz.

[java] package methods;

public class AsalSayi {

public static void main(String[] args) {
// TODO Auto-generated method stub
boolean durum = sayiAsalMi(99);

if(durum){
System.out.println("Asaldır");
}else{
System.out.println("Asal değildir");
}

}
private static boolean sayiAsalMi(int x) {

double kok = Math.sqrt(x);
for (int i = 2; i <= kok; i++) {//bir sayının köküne kadar bölümünü denersek o sayının asal olup olmadığını anlarız.
if(x%i == 0){// mod işlemi yapar. sayı tam bölündüğü an return false komutuna iner
return false;//sayı bölündüğü an asal değildir. Bu yüzden false değeri dönülmesi gerekmektedir.
}
}
return true;// false seçeneğine girmediği sürece son adım olarak true ya geldiğinde sayının asal olduğu anlaşılır.
}

}
[/java]

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

İşletim Sistemlerine Giriş

İşletim sistemleri, bilgisayar donanımları ve kullanıcılar arasında iletişim sağlamak amacıyla yazılmış olan programlardır. Bilgisayar Nedir? …

2 Yorumlar

  1. perl

    buraya en kısa diye başlık atmışsın ama yazdığın program oldukça yavaş, en basitinden metot içindeki for ‘u tek sayidan başlatıp ikişer ikişer attırmak bile (çünkü çift sayılar asal değildir) yazdığın metodun yaklaşık iki katı hızlanmasını sağlayabilir.

    • for u tek sayıdan başlatmaktan kastınız eğer 3 ise, tamam başlatalım. sayı 2 ye bölünürse ne olacak? bunun kontrolü sağlanmıyor. 2 den başlatmak zorunludur.

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.