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 :
- Tulis semua bilangan, mulai dari 1 sampai n. Misalkan ini adalah daftar A.
- Buat suatu daftar yang masih kosong, sebut saja daftar B.
- Coret bilangan 1 dari daftar A.
- Lalu tulis 2 pada daftar B. Lalu coret 2 dan semua kelipatannya dari daftar A.
- 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.
- 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


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
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
yg jelas algonya sama
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 ?
cahya putra
July 5, 2011 at 12:54 pm
yoa,, bisa gak/??