Saringan Eratosthenes: Perbedaan revisi

9.563 bita dihapus ,  5 tahun yang lalu
tidak ada ringkasan suntingan
Tag: menghilangkan kategori
[[Berkas:Sieve_of_Eratosthenes_animation.gif|thumb|right|500px|Animasi saringan Eratosthenes dari 1 sampai ''n''=120. Daftar A (kiri) dan daftar B (kanan). Bilangan yang sudah diwarnai artinya sudah dicoret.]]
bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajobajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz bajotz tz
'''Saringan Eratosthenes''' adalah suatu cara untuk menemukan semua [[bilangan prima]] di antara 1 dan suatu angka ''n''. Saringan ini ditemukan oleh [[Eratosthenes]], seorang ilmuwan [[Yunani kuno]]. Cara ini merupakan cara paling sederhana dan paling cepat untuk menemukan bilangan prima, sebelum [[Saringan Atkin]] ditemukan pada tahun 2004. Saringan Atkin merupakan cara yang lebih cepat namun lebih rumit dibandingkan dengan Saringan Eratosthenes.
 
== Langkah-langkah saringan Eratothenes ==
Misalkan kita hendak menemukan semua bilangan prima di antara 1 sampai suatu bilangan bulat ''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.
 
== Saringan Eratosthenes dalam Pemrograman ==
Saringan Eratosthenes dapat dimanfaatkan dalam [[pemrograman komputer|pemrograman]]. Sebuah [[program]] dapat menampilkan deretan bilangan prima yang ada di antara 1 sampai ''n'' dengan memanfaatkan ide saringan Eratosthenes. Berikut ini adalah sebuah potongan kode dalam bahasa pemrograman [[Java]] dan [[C (bahasa pemrograman)|C]] yang mencetak bilangan prima di antara 1 sampai ''n''=120.
 
int n=120; //batas atas n dapat diganti dengan bilangan bulat lainnya
boolean[] prima=new boolean[n+1];
for(int i=0; i<=n; i++)
prima[i]=true; //set seluruh array menjadi true
prima[0]=prima[1]=false; //0 dan 1 bukan bil. prima
double akarN=Math.sqrt(n); //akar kuadrat dari n
//coret bilangan yang bukan prima
for(int i=2; i<=akarN; i++) {
if (prima[i]) {
for (int j=i*i; j<=n; j=j+i)
prima[j]=false;
}
}
//tampilkan seluruh bilangan prima
for(int i=0; i<n; i++) {
if (prima[i])
System.out.print(i+ "\t");
Saringan Eratosthenes dalam Bahasa C
// Sieve of Eratosthenes using C language
// author : Yusuf - <nowiki>http://www.ilmusoft.com
// date : 22-Des-2013
#</nowiki>include <stdio.h>
int main() {
int i;
for (i=1;i<=1000;i++) {
if (i==1) {}// not prime, skip
else if(i == 2 || i==3 || i ==5 || i==7) {printf("%d ",i);} // prima
else if(i%2==0) {} // bukan prima, lewati
else if(i%3==0) {} // bukan prima, lewati
else if(i%5==0) {} // bukan prima, lewati
else if(i%7==0) {} // bukan prima, lewati
else printf("%d ",i); // prima
}
return 0;
}
[[Kategori:Bilangan prima]]
[[Kategori:Pemrograman komputer]]
1.964

suntingan