RSS

Cara Mencari bilangan Prima Dengan Algoritma Sieve of Eratosthenes

04 Jul

Seperti yang kita ketahui (buat yang udah pada tau) bahwa bilangan prima adalah bilangan (>1) yang hanya habis dibagi oleh bilangan 1 dan bilangan itu sendiri. sebenarnya ada banyak cara untuk mencari bilangan prima. salah satu adalah memastikan suatu bilangan (n>1) tidak habis dibagi bilangan bulat mulai dari 2 sampai round(sqrt(n)). Namun cara ini cukup memakan waktu yg agak lama. Untuk mencari bilangan prima dengan cepat , kita dapat menggunakan Algoritma Sieve of Eratosthenes. algo Eratosthenes ini cepat karena dia mencari bilangan prima dengan sebelumnya mencoret bilangan-bilangan yang bukan prima dan kelipatannya.

Langkah-langkah :


apabila kita ingin mencari bilangan prima dari 1 sampai n :

  1. Tulis semua bilangan, mulai dari 1 sampai n. Misalkan ini adalah daftar A.
  2. Buat suatu daftar yang masih kosong, sebut saja daftar B.
  3. Coret bilangan 1 dari daftar A.
  4. Lalu tulis 2 pada daftar B. Lalu coret 2 dan semua kelipatannya dari daftar A.
  5. Bilangan pertama yang belum tercoret dari daftar A (misalnya 3) adalah bilangan prima. Tulis bilangan ini di daftar B, lalu coret bilangan ini dan semua kelipatannya dari daftar A.
  6. Ulangi langkah 4 sampai semua bilangan di daftar A sudah tercoret.

Setelah selesai, semua bilangan di daftar B adalah bilangan prima.


ini adalah contoh source codenya :


Semoga Berguna :)

 

About Dewangga Winardi

[Wrong Answer] Just a stupid boy who want to be a Great Coder [Accepted]
7 Comments

Posted by on July 4, 2011 in Programming

 

7 Responses to Cara Mencari bilangan Prima Dengan Algoritma Sieve of Eratosthenes

  1. cahya putra

    July 5, 2011 at 12:21 pm

    bisa gak dipake buat nyari bilangan prima sampe 10 digit???

     
    • Dewangga Winardi

      July 5, 2011 at 12:28 pm

      bisa cah , tapi tipe datanya pake long int ato long long (kalo di pascal int64) :)

       
      • cahya putra

        July 5, 2011 at 12:33 pm

        tapi gak lama ntar nunggu nya???
        ehh.. misal kita mau nyari bilangan prima yang awalnya 9 gimana?
        bisa? hehehe :D

         
      • Dewangga Winardi

        July 5, 2011 at 12:37 pm

        hmmm
        kalo masalah lama nggaknya itu tergantung tipe data cah
        kalo ga salah aq sempet baca , bisa nyari sampe 1000.000 dalam waktu 3 detik
        kalo mw cari dari 9 , ya di akal2in aj sendiri :-P
        yg jelas algonya sama :)

         
  2. cahya putra

    July 5, 2011 at 12:41 pm

    wkwkwkw..
    hmmm,, ada gak cara cepet untuk tahu bilangan prima tanpa harus pake program???

    oh ya de,, minta donkk,, cara mengetahui 3 angka terdepan..
    misal ada
    n = 1234567891011…00001
    jika n kita akarkan,, maka 3 digit pertamanya adalah???

     
    • Dewangga Winardi

      July 5, 2011 at 12:44 pm

      maksudnya cah ?
      jadi 3 angka depan dari sqrt(1234567891011…00001) gitu ?

       
  3. cahya putra

    July 5, 2011 at 12:54 pm

    yoa,, bisa gak/??

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.