Tutorial Bahasa C/C++: Program Penyeleksi dan Penampil Bilangan Prima


Dalam matematika, bilangan prima adalah bilangan asli yang lebih besar dari 1, yang faktor pembaginya adalah 1 dan bilangan itu sendiri. 2 dan 3 adalah bilangan prima. 4 bukan bilangan prima karena 4 bisa dibagi 2. Sepuluh bilangan prima yang pertama adalah 2, 3, 5, 7, 11, 13, 17, 19, 23 dan 29. (Sumber: Wikipedia)

Menyeleksi bilangan prima dari deret bilangan asli tidaklah sesulit yang dibayangkan. However, membuat program untuk menampilkan bilangan prima sangatlah baik untuk mengasah kemampuan kita dalam menyusun algortima pemrograman dan sekaligus mengimplementasikannya menjadi sebuah program yang berfungsi dengan benar.

Pada tulisan ini saya akan membahas secara singkat sebuah program penyeleksi bilangan prima dari deret bilangan asli.

Sesuai dengan namanya yakni penyeleksi bilangan prima dari deret bilangan asli, maka program akan menyeleksi bilangan prima dari deret bilangan asli. Bagaimana programnya? Mari kita simak bersama-sama.

Pertama-tama program harus memiliki deret bilangan asli. Kita dapat merepresentasikannya menggunakan array integer sebagai berikut:

int prima[200];

//inisialisasi array prima[]
for (x=2; x<200; x++)
   prima[x] = x;

Dengan program tersebut, sekarang kita memiliki deret bilangan asli 2-199 yang disimpan dalam variabel array integer prima[].

Catatan:
Kita mulai dari 2 dan mengabaikan 0 dan 1 karena bilangan prima adalah bilangan asli yang lebih dari 1.

Selanjutnya kita tinggal menyeleksi bilangan prima dari bilangan asli 2-199. Programnya adalah sebagai berikut:

//seleksi bilangan prima
for (x=2; x<200; x++)
{
   for (y=x+x; y<200; y+=x)
       prima[y] = 0;
}

Pada perulangan x, nilai x bergerak dari 2, 3, 4, 5, dst. hingga 199. Pada perulangan y, ketika nilai x=2, nilai y akan bergerak dari 4, 6, 8, 10, dst. Variabel y digunakan sebagai index dari variabel array integer prima[] dan memberikan nilai 0 pada elemen dengan index tersebut. Sehingga dengan demikian semua bilangan asli dengan kelipatan 2 akan “hilang” dari deret bilangan asli 0-199.

Proses tersebut berulang untuk nilai x=3, x=4, dst. Pada akhir proses variabel array prima[] akan berisi data sebagai berikut:

Program seleksi bilangan prima
    2    3    0    5    0    7    0    0    0   11    0   13    0    0    0
   17    0   19    0    0    0   23    0    0    0    0    0   29    0   31
    0    0    0    0    0   37    0    0    0   41    0   43    0    0    0
   47    0    0    0    0    0   53    0    0    0    0    0   59    0   61
    0    0    0    0    0   67    0    0    0   71    0   73    0    0    0
    0    0   79    0    0    0   83    0    0    0    0    0   89    0    0
    0    0    0    0    0   97    0    0    0  101    0  103    0    0    0
  107    0  109    0    0    0  113    0    0    0    0    0    0    0    0
    0    0    0    0    0  127    0    0    0  131    0    0    0    0    0
  137    0  139    0    0    0    0    0    0    0    0    0  149    0  151
    0    0    0    0    0  157    0    0    0    0    0  163    0    0    0
  167    0    0    0    0    0  173    0    0    0    0    0  179    0  181
    0    0    0    0    0    0    0    0    0  191    0  193    0    0    0
  197    0  199

Selanjutnya, kita tinggal menampilkan deret bilangan prima antara 2-200 dengan program sebagai berikut:

    printf("Deret bilangan prima 2-200\n");
    y = 0;
    for (x=2; x<200; x++)
    {
        if (y>15)
        {
            printf("\n");
            y = 1;
        }
        if (prima[x]>0)
        {
            printf("%5d", prima[x]);
            y++;
        }
    }

Hasilnya adalah sebagai berikut:

Deret bilangan prima 2-200
    2    3    5    7   11   13   17   19   23   29   31   37   41   43   47   53
   59   61   67   71   73   79   83   89   97  101  103  107  109  113  127
  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199

Dan berikut adalah screenshot program penyeleksi bilangan prima dari deret bilangan asli hasil eksekusi interpreter Ch.

image

Semoga bermanfaat dan selamat belajar!

🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s