Menentukan Bilangan Prima dengan Java

Iseng-iseng buat program untuk menentukan bilangan prima dengan bahasa pemrograman Java. Penentuan bilangan prima ini bukan dengan meng-input suatu bilangan dan akan menampilkan informasi bahwa bilangan yang di-input tersebut adalah bilangan prima atau bukan. Bukan begitu. Melainkan menampilkan daftar bilangan prima dari deretan bilangan, misal dari 1 sampai 1.000.000.

package id.rumahbatik.learningjava;

import java.util.concurrent.TimeUnit;

public class BilanganPrima {
    public void start() {
        int max = 200000;
        long start = System.currentTimeMillis();
        for(int i = 1; i <= max; i++) {
            if ( getMainPrima(i) ) {
                System.out.println(i);
            }
        }
        long finish = System.currentTimeMillis();
        elapsedTime(start, finish);
    }

    boolean getMainPrima(int i) {
        boolean one = i % 1 == 0;
        boolean two = i % 2 == 0 && i / 2 > 1;
        boolean three = i % 3 == 0 && i / 3 > 1;
        boolean five = i % 5 == 0 && i / 5 > 1;
        boolean seven = i % 7 == 0 && i / 7 > 1;

        return one && ! two && ! three && ! five && ! seven;
    }
    
    void elapsedTime(long start, long finish) {
        long elapsed = finish - start;
    
        String hms = String.format(
                "%02d hours, %02d minutes, %02d seconds, and %02d milliseconds",
                TimeUnit.MILLISECONDS.toHours(elapsed),
                TimeUnit.MILLISECONDS.toMinutes(elapsed) % TimeUnit.HOURS.toMinutes(1),
                TimeUnit.MILLISECONDS.toSeconds(elapsed) % TimeUnit.MINUTES.toSeconds(1),
                TimeUnit.MILLISECONDS.toMillis(elapsed) % 1000
        );

        System.out.println("\n\n\n");
        System.out.println("Program finish in:");
        System.out.println(hms);
    }
}

 

start() untuk memulai program. Variabel int max adalah sebagai batasan sampai bilangan keberapa Anda ingin mendapatkan bilangan prima

getMainPrima(int i) untuk menentukan apakah suatu bilangan yang di-passing ke parameter int i  adalah bilangan prima atau bukan

elapsedTime() saya gunakan hanya sebagai pencatat waktu saja, tidak ada tujuan lain 😀

hasil output:

Bilangan Prima

 

Feel free to suggest me simpler and or faster method. I will be very appreciate 🙂

Silakan Anda bebas berkomentar, memberi saran dan atau kritik jika mempunyai metode yang lebih sederhana dan lebih cepat. Saya akan sangat menghargai itu 🙂

2 Comments

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.