Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

Maret 28, 2024, 08:10:38 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 116
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 64
Total: 64

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Bagaimana mencari bilangan prima?

Dimulai oleh reborn, November 24, 2006, 12:21:48 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

reborn

Bilangan prima adalah bilangan asli yang hanya memiliki dua faktor pembagi, yaitu 1 dan bilangan itu sendiri. Contohnya : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, ......

Ada yang tau metode buat cari bilangan prima ga?

al fahrezy


Salam kenal admin

rumus untuk bilangan prima ya...?

Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......

kalo aku masih bisa menemukan rumus untuk bilangan prima yang kurang dari 100

caranya gini

1. bilangan tersebut harus ganjil tentunya
2. bilangan tersebut tidak rangkap (33, 55, dsb)
3.jumlahkan angka tersebut sampai menjadi 1 digit, apabila hasilnya tidak sama   dengan 3,6,9. maka dia pasti prima

reborn

Kutip dari: al fahrezy pada November 30, 2006, 09:20:47 AM

Salam kenal admin

rumus untuk bilangan prima ya...?

Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......

kalo aku masih bisa menemukan rumus untuk bilangan prima yang kurang dari 100

caranya gini

1. bilangan tersebut harus ganjil tentunya
2. bilangan tersebut tidak rangkap (33, 55, dsb)
3.jumlahkan angka tersebut sampai menjadi 1 digit, apabila hasilnya tidak sama   dengan 3,6,9. maka dia pasti prima

Salam kenal al fahrezy :)

wew... 1st post di forum math yahh... pasti pakar math neh ;)

1. Yup, karena genap bisa dibagi 2
2. Yup, karena rangkap bisa dibagi 11
3. Yup, karena kalo sama dgn 3,6,9 bisa dibagi 3

tapi masa hanya sampe di bawah 100? mencari bilangan prima terbesar lagi trend lho :P


reborn

Kutip dari: al fahrezy pada November 30, 2006, 09:20:47 AM

Salam kenal admin

rumus untuk bilangan prima ya...?

Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......


Iseng dinaekin lagi ah.. mana tau ada yang ahli math lagi mampir sini. Yup, ada hadiah 1 juta dollar. Seperti post saya di     Riemann Hypothesis - one of the seven Mathematics Millennium Problems.

Maksudnya tadinya sengaja post tentang bilangan prima dulu baru lanjut ke sana... gak sabaran langsung post juga hehe....

Jadi mana yahh pakar math nya neh.. mohon pencerahan  ;D

wildanr

hum.. kalau menggenerate nya bisa dengan Sieve of Eratosthenes. caranya gini :

1. Tulis daftar angka dari 2 sampai bilangan terbesar yang ingin di cek primanya. Kita sebut daftar A.
2. Angka 2 adalah bilangan prima yang pertama, tulis angka 2 di daftar angka kedua ( kita sebut daftar B ). daftar B ini nanti isinya bilangan yang prima.
3. Pada daftar A, coret angka 2 dan semua angka yang habis dibagi 2.
4. Setelah itu, angka pertama pada daftar A yang tidak tercoret merupakan bilangan prima, maka tambahkan pada daftar B.
5. Pada daftar A, coret angka tersebut dan semua angka yang habis dibagi angka tersebut. Pencoretan bisa dimulai dari kuadrat angka tersebut. Misalkan angka yang dicoret adalah 3, maka coret semua kelipatan 3 mulai dari 9. lalu kalau 5 bisa langsung mulai coret dari angka 25.
6. Ulangi langkah tersebut sampai semua daftar A tercoret.

kalau kurang jelas, ini sumbernnya : [pranala luar disembunyikan, sila masuk atau daftar.]

reborn

Kutip dari: wildanr pada Februari 13, 2007, 03:50:40 AM
hum.. kalau menggenerate nya bisa dengan Sieve of Eratosthenes. caranya gini :

1. Tulis daftar angka dari 2 sampai bilangan terbesar yang ingin di cek primanya. Kita sebut daftar A.
2. Angka 2 adalah bilangan prima yang pertama, tulis angka 2 di daftar angka kedua ( kita sebut daftar B ). daftar B ini nanti isinya bilangan yang prima.
3. Pada daftar A, coret angka 2 dan semua angka yang habis dibagi 2.
4. Setelah itu, angka pertama pada daftar A yang tidak tercoret merupakan bilangan prima, maka tambahkan pada daftar B.
5. Pada daftar A, coret angka tersebut dan semua angka yang habis dibagi angka tersebut. Pencoretan bisa dimulai dari kuadrat angka tersebut. Misalkan angka yang dicoret adalah 3, maka coret semua kelipatan 3 mulai dari 9. lalu kalau 5 bisa langsung mulai coret dari angka 25.
6. Ulangi langkah tersebut sampai semua daftar A tercoret.

kalau kurang jelas, ini sumbernnya : [pranala luar disembunyikan, sila masuk atau daftar.]


Bener kan, abis dinaikin topiknya nongol pakat matematika  ;D Sip, dilanjut terus sampe algoritma cari bilangan prima terbesar  8)

anca

Algoritma Bilangan Prima
===========================

procedure BilPrima(num: Integer);
var i, max: integer;
begin
  if num=0 then exit;
  max := 2000;
  for i:= 2 to max do
   begin
      if ((i=2) or (i=3) or (i=5) or (i=7)) then
      begin
       Tambahkan ke penyimpanan
       num := num-1;
        if num=0 then
       exit;
      end;
     if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
      begin
       Tambahkan ke peyimpanan
       num := num-1;
       if num=0 then
       exit;
      end;
   end;
end;

Souce Lengkap dengan delphi

insan sains

KutipAlgoritma Bilangan Prima
===========================

procedure BilPrima(num: Integer);
var i, max: integer;
begin
  if num=0 then exit;
  max := 2000;
  for i:= 2 to max do
   begin
      if ((i=2) or (i=3) or (i=5) or (i=7)) then
      begin
       Tambahkan ke penyimpanan
       num := num-1;
        if num=0 then
       exit;
      end;
     if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
      begin
       Tambahkan ke peyimpanan
       num := num-1;
       if num=0 then
       exit;
      end;
   end;
end;

Souce Lengkap dengan delphi

Siapa tuh yang bikin algorithma pemprograman begitu?

Kalau benar, bisa dapat hadiah NOBEL tuh...!!! he..he..he... sayangnya BELUM TEPAT!


Pertama, mau ngomentarin dulu script programnya yang sedikit acak-acakan!

Kutip
     if ((i=2) or (i=3) or (i=5) or (i=7)) then
      begin
       Tambahkan ke penyimpanan
       num := num-1;
        if num=0 then
       exit;
      end;
     if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
      begin
       Tambahkan ke peyimpanan
       num := num-1;
       if num=0 then
       exit;
      end;

Ini seharusnya bisa disingkat menjadi :

-------------------------------------

if ((i=2) or (i=3) or (i=5) or (i=7)) .or. ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then

begin
   Tambahkan ke penyimpanan
   num := num-1;
end;

if num=0 then exit;

-------------------------------------

Kedua, mau ngomentarin kesalahan algorithmanya
Script program diatas hanya bisa mengetahui tidak lebih dari 30 bilangan prima.
Kalau program diatas dibahasa manusiakan, bunyinya kurang lebih begini :

Jika angka yang diproses adalah antara (1, 3, 5, 7) atau sisa bagi angka tersebut dengan (2, 3, 5, 7) adalah nol, maka simpan itu sebagai bilangan prima.


So.. kesalahannya jelas terlihat, bahwa untuk bilangan yang bisa dibagi dengan 11, 13, etc.. belum diakomodir oleh program ini. Coba aja, jika program ini harus menentukan angka 121, maka menurut algoritma program diatas, hasilnya 121 termasuk bilangan prima, padahal seharusnya 121 bukanlah bilangan prima (sebab bisa dibagi 11), begitu juga dengan 143, 169, etc... program ini masih kurang lengkap! So gak ada gunanya variable max diisi dengan 2000 (bahkan nilai yang lebih besar pun, hasilnya tidak valid untuk bilangan prima diatas 113)

Ni situs buat ngecheck bilangan prima : [pranala luar disembunyikan, sila masuk atau daftar.]
Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030

chow bun how

Hi.. All pecinta matematika di nusantara.

Mungkin diantara teman2 sudah pernah dengan Millenium Prize (http://www. claymath. org/millennium/ ) adalah.7 problem dunia matematika  yg belom terpecahkan yaitu :

    * Birch and Swinnerton-Dyer Conjecture
    * Hodge Conjecture
    * Navier-Stokes Equations
    * P vs NP
    * Poincaré Conjecture
    * Riemann Hypothesis
    * Yang-Mills Theory

nah salah satu problem diatas : Rieman Hypothesis: yg memperkenalkan fungsi zeta, dimana fungsi zeta ini menerangkan tentang pola bilangan prima. masalahnya  sampai sekarang  belom ada  orang  yang  bisa  membuat  algoritma  dan  teori  bilangan prima  yang  mangkus. artinya : belom ada spektrum bilangan untuk mencari faktor2 bilangan prima. kalau di bidang kimia ada spektrum kimia atom. bila diambil senyawa atau zat kimia dengan spektrum kimia tadi langsung ketauan struktur atomnya. Spektrum seperti itu yg dibutuhkan:

contoh : 100 : 10 x 10 =  2 x 5 x 2 x 5  faktor  primanya : 2 dan  5
bila : 1841921854111823274 2236667995226521 5254869586358663 5525426264214121 4525462342246264 7

faktor prima berapa? dan apakah ini bilangan ini prima? sebagai acuan untuk mendapatkan bilangan prima 100 digit dengan memakai super komputer yg canggih dan algoritma yg canggih saat ini. dibutuhkan waktu 4 millyard tahun lamanya..( klo ndak percaya buktikan sendiri).

nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menitsaja. sy memakai program VB6.0..

nah..temen2 sy sudah email ke [pranala luar disembunyikan, sila masuk atau daftar.] beberapa kali tapi ndak ada tanggapan. tolong dong temen2 kasih masukan buat sy...

thanks

chow bun how

insan sains

Kutip dari: chow bun how pada Maret 11, 2008, 02:38:54 PM
nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menit saja. sy memakai program VB6.0..

Wah..  boleh di share di sini dong! Saya jadi penasaran pengen tahu!
Saya sendiri pernah buat dengan menggunakan metode yang paling kuno yaitu metode Sieve of Eratosthenes. Metode yang paling gampang tapi bukan yang paling tercepat. Pernah nyobain, dapetin bilangan prima yang ke 500.000 (lima ratus ribu) saja bisa sampe 4 jam. Tapi untuk bilangan prima yang ke puluhan ribu hanya bisa didapetkan dalam waktu kurang dari 10 detik. Bilangan prima yang kesejuta mungkin bisa sampe setengah harian (12 jam). Wah.. bisa-bisa komputer kantor meledak tuh, kepayahan.

Wah.. jadi penasaran pengen lihat program yang kamu buat yang katanya bisa sampe 200 digit. Jadi kira-kira bilangan prima itu bisa sepanjang ini yach ?

1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

Ck.. ck..! Hebat juga yach...! (Bukan program untuk mengecheck bilangan prima kan?) Jadi nyari bilangan prima yang ke 2 x 10^200. Pengen dong source code-nya?!!! ^_^
Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030

Ritza_ll

Wah.....
ternyata banyak orang indonesia yang genius!!!  ;)

Orang dengan IQ limit seperti saya jd merasa terbantu sekali.
ternyata sains itu menarik!!!  ;D ;D ;D
Wah pada pinter2 banget sih!!! :D
Ajarin donk genius...
NB: Yg tau antonimnya "Haus" tolong PM aq ya. Thx

newkompi

public class prima{
   public static void main (String[] args){
   final int max = 1000000;
   long akhir = max;
   int prim[] = new int[max];
   int no = 0;
   for(int awal=2;awal<=akhir;awal++){
      if(awal == 2){
      prim[no] = awal;
      no++;
      }else{
      boolean benar = true;
      for(int i = 0; i< no; i++){
         if(awal % prim == 0){
         benar = false;
         }
         }
      if(benar){
         prim[no] = awal;
         no++;
      }
      }
   }
   for(int i = 0; i< max; i++){
      if(prim != 0){
         System.out.println(prim);
      }
   }
   }

}

b0cah

#12
Cara yang lazim untuk menemukan bilangan prima adalah dengan menyiapkan angka-angka dan memberi warna sesuai dengan kelipatan 2 hingga 9, nah, kotak yang tersisa (tidak berwarna) adalah merupakan bilangan prima.

Yang menarik adalah, aturan bagi bilangan prima adalah mudah, namun tidak ada rumus atau persamaan mudah untuk menentukan apakah sebuah bilangan â€"mungkin-- yang amat besar adalah merupakan bilangan prima atu bukan.

Sebagai informasi, bilangan prima terbesar yang pernah dihitung oleh manusia adalah 170.141.183.460.469.231.731.687.303.715.864.105.727, atau 2(127) -1, yang "ditemukan" oleh seorang matematikawan Inggris Arthur Lucas pada tahun 1877, wah sekarang udah ditemukan bilangan prima yang lain blum ya?***

Vinchemz

Kutip dari: anca pada November 05, 2007, 03:40:23 PM
Algoritma Bilangan Prima
===========================

procedure BilPrima(num: Integer);
var i, max: integer;
begin
  if num=0 then exit;
  max := 2000;
  for i:= 2 to max do
   begin
      if ((i=2) or (i=3) or (i=5) or (i=7)) then
      begin
       Tambahkan ke penyimpanan
       num := num-1;
        if num=0 then
       exit;
      end;
     if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
      begin
       Tambahkan ke peyimpanan
       num := num-1;
       if num=0 then
       exit;
      end;
   end;
end;

Souce Lengkap dengan delphi

Berarti 33 ntar dimasukin ke dalam bilangan prima (pembagianya cuma sampe angka 7, padahal 11 x 3 = 33 (bukan prima)


Ada gak teknik menghitung bil prima dengan mudah??
Sebutkan bilangan prima ke-1000??

insan sains

Kutip dari: Vinchemz pada Juli 28, 2008, 04:55:37 PM
Berarti 33 ntar dimasukin ke dalam bilangan prima (pembagianya cuma sampe angka 7, padahal 11 x 3 = 33 (bukan prima)

Sudah dijelaskan diatas, bahwa program yang dikutip itu ada kesalahan...

Kutip dari: Vinchemz pada Juli 28, 2008, 04:55:37 PM
Ada gak teknik menghitung bil prima dengan mudah??
Sebutkan bilangan prima ke-1000??

Listing program yang ditulis oleh newkompi mungkin sudah memadai untuk menghitung bilangan prima yang ke-1000 (menggunakan metode Sieve of Eratosthenes) . Jika Anda ingin programnya sekedar mengetahui bilangan prima yang ke(sekian). maka Anda tinggal membuat parameter pada class prima, taruhlah nama parameter itu, "primake". Kemudian mengganti :

final int max = 1000000

menjadi :

final int max = primake

Hasil akhir yang ditunjukkan oleh program itulah, bilangan prima yang dimaksud. Ada yang punya algoritma dan metode pemprograman yang lain gak?

btw... chow bun how pernah bikin tuh algoritma yang katanya supercepat untuk mencari bilangan prima. Tapi pas diminta source codenya, gak nongol-nongol lagi..!!

Kutip dari: chow bun how pada Maret 11, 2008, 02:38:54 PM
nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menitsaja. sy memakai program VB6.0..

nah..temen2 sy sudah email ke [pranala luar disembunyikan, sila masuk atau daftar.] beberapa kali tapi ndak ada tanggapan. tolong dong temen2 kasih masukan buat sy...

thanks

chow bun how

Saya harap benaran tuh....
Menuju Indonesia sebagai THE COUNTRY MASTER OF TECHNOLOGY, 2030