24 Nisan 2013 Çarşamba


Merhaba Arkadaşlar, Bu makalemde basit bir asal sayı bulma algoritmasını paylaşmak istiyorum.. Yapmaya çalıştığım şey 3'ten 100'e kadar olan asal sayıları ekrana yansıtmak... Bu sayı aralığını integer büyüklüğü el verdiği müddetçe değiştirebilirsiniz..
1. Versiyon
package asal;
/**
 *
 * @author Hasan Çelik
 */
public class Asal2 {
    public static void asalBul() {
        int a = 3;
        int b = 2;
        int a2 = 100;
        int kalan=0;
        for (int i = a; i <= a2; i++) {
            for (int j = b; j < i; j++) {
                kalan = i % j;
                if (kalan == 0) {
                    break;
                }
            }
            if(kalan!=0){
                System.out.println(i + "-");
            }
        }
    }
  
    public static void main(String[] args) {
        asalBul();
    }
}
2. Versiyon
package asal;
/**
 *
 * @author Hasan Çelik
 */
public class AsalSayi {
    public static void main(String[] args) {
        int a = 3;
        int b = 2;
        int a2 = 100;
        int kalan;
        boolean asalmi = false;
        for (int i = a; i <= a2; i++) {
            asalmi = true;
            for (int j = b; j < i; j++) {
                kalan = i % j;
                if (kalan == 0) {
                    asalmi = false;
                }
            }
            if (asalmi) {
                System.out.println(i + "-");
            }
        }
    }
}
Sonuç
3-5-7-11-13-17-19-23-29-31-37-41-43-47-53-59-61-67-71-73-79-83-89-97-BUILD SUCCESSFUL (total time: 1 second)
3. Versiyon
package asal;
import java.util.Scanner;
/**
 *
 * @author Hasan Çelik
 */
public class Asal {
    public static void asalBul(Integer girilenSayi) {
        if (girilenSayi != null && !girilenSayi.equals("")) {
            if ((girilenSayi % 2) == 0) { //yani sayımız çift ise kalan haliyle sıfır olur...
                System.out.println("Asal Degil..");
                return;
            } else {
                for (int i = 3; i < girilenSayi; i = i + 2) {
                    if ((girilenSayi % i) == 0) {
                        System.out.println("Asal Degil..");
                        return;
                    }
                }
            }
            if ((girilenSayi / 1 == girilenSayi) && (girilenSayi / girilenSayi == 1)) {
                System.out.println("Bu Bir Asal Sayıdır!!!");
                return;
            }
        }
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner klavye = new Scanner(System.in);
        Integer girilenSayi = klavye.nextInt();
        asalBul(girilenSayi);
    }
}
Sonuç
run:
23
Bu Bir Asal Sayıdır!!!
BUILD SUCCESSFUL (total time: 7 seconds)

0 yorum :

Yorum Gönder