MENENTUKAN PRIMALITAS SEMUA BILANGAN YANG TERDAPAT PADA SELANG TERTENTU SECARA BRUTE FORCE

dokumen-dokumen yang mirip
STUDI SEJARAH DAN PERKEMBANGAN BILANGAN PRIMA

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Analisis dan Implementasi Serangan Kunci secara Konkuren pada Algoritma RSA

Sieve of Eratosthenes, Algoritma Bilangan Prima

Sieve of Eratosthenes dan Aplikasinya Dalam Problem Solving

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

ALGORITMA PENCARIAN BILANGAN PRIMA

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Penerapan Algoritma Brute Force pada permainan Countdown Number

Aplikasi Bilangan Prima dalam Pembentukan Basis Bilangan

Teorema Fermat Dalam Menentukan Keprimaan Bilangan

II. TINJAUAN PUSTAKA. Pada bab ini akan dibahas konsep-konsep yang mendasari konsep representasi

Algoritma Brute Force

Bilangan Prima, Uji Keprimaan, dan Berbagai Aplikasi Bilangan Prima

Teori Bilangan (Number Theory)

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

BILANGAN DAN KETERBAGIAN BILANGAN BULAT

BILANGAN. Bilangan Satu Bilangan Prima Bilangan Komposit. Bilangan Asli

Penerapan Algoritma Brute Force di Permainan Nonogram

II. TINJAUAN PUSTAKA. Pada bagian ini diterangkan materi yang berkaitan dengan penelitian, diantaranya konsep

Algoritma Brute Force pada Fluid Particle Engine

BAB 4. TEOREMA FERMAT DAN WILSON

Aplikasi Teori Bilangan Bulat dalam Pembangkitan Bilangan Acak Semu

Strategi Algoritma Penyelesaian Puzzle Hanjie

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

BAB 2 LANDASAN TEORI

BAB 4. TEOREMA FERMAT DAN WILSON

Disajikan pada Pelatihan TOT untuk guru-guru SMA di Kabupaten Bantul

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

METODE SOLOVAY-STRASSEN UNTUK PENGUJIAN BILANGAN PRIMA

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

BAB 2 LANDASAN TEORI

MAKALAH KRIPTOGRAFI CHINESE REMAINDER

Materi Pembinaan Olimpiade SMA I MAGELANG TEORI BILANGAN

Kongruen Lanjar dan Berbagai Aplikasi dari Kongruen Lanjar

Penerapan Algoritma Brute Force pada Password Recovery

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Membangkitkan Bilangan Prima Mersenne di atas 512 Digit Menggunakan Kombinasi Eratosthenes dan Fermat Little Theorem Untuk Pendukung Kunci Publik RSA

TEORI BILANGAN. Bilangan Bulat Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal, misalnya 8, 21, 8765, -34, 0.

PENGGUNAAN BRUTE FORCE UNTUK MERETAS PASSWORD FILE RAR

Kegunaan Chinese Remainder Theorem dalam Mempercepat dan Meningkatkan Efisiensi Peforma Sistem Kriptografi RSA

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Aplikasi Teori Bilangan Dalam Algoritma Enkripsi-Dekripsi Gambar Digital

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

BAB 4. TEOREMA FERMAT DAN WILSON

R. Rosnawati Jurusan Pendidikan Matematika FMIPA UNY

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

HASIL DAN PEMBAHASAN. Algoritma Modular Exponentiation mempunyai kompleksitas sebesar O((lg n) 3 ) (Menezes et al. 1996).

FENOMENA KONJEKTUR GOLDBACH DALAM DUNIA MATEMATIKA DISKRIT DAN PERKEMBANGANNYA

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer

Sifat Prima Terhadap Fungsionalitas Algoritma RSA

Penerapan Algoritma Backtracking pada Knight s Tour Problem

KEKONVERGENAN DERET RECIPROCALS PRIMA YANG BERHUBUNGAN DENGAN BILANGAN FERMAT ABSTRACT

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Aplikasi Chinese Remainder Theorem dalam Secret Sharing

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Departemen Teknik Informatika Institut Teknologi Bandung 2004

Nama Mata Kuliah : Teori Bilangan Kode Mata Kuliah/SKS : MAT- / 2 SKS

Penerapan Strategi Algoritma Menyelesaikan Kompleksitas Pixel Maze secara Otomatis pada Virupizxel

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Algoritma Pendukung Kriptografi

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Matriks dalam Kriptografi

BAB III PENGEMBANGAN TEOREMA DAN PERANCANGAN PROGRAM

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Jurnal Evolusi Volume 5 No evolusi.bsi.ac.id

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Manusia itu seperti pensil Pensil setiap hari diraut sehingga yang tersisa tinggal catatan yang dituliskannya. Manusia setiap hari diraut oleh rautan

II. TINJAUAN PUSTAKA. bilangan yang mendukung proses penelitian. Dalam penyelesaian bilangan

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

Perhitungan dan Implementasi Algoritma RSA pada PHP

2 BILANGAN PRIMA. 2.1 Teorema Fundamental Aritmatika

WOLFRAM-ALPHA PADA TEORI BILANGAN

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Pemecahan Masalah Longest Increasing Subsequence Memanfaatkan Program Dinamis dan Binary Search

LANDASAN TEORI. bilangan coprima, bilangan kuadrat sempurna (perfect square), kuadrat bebas

II. TINJAUAN PUSTAKA. Pada bab ini akan diberikan konsep dasar (pengertian) tentang bilangan sempurna,

Algorima Greedy Pada Self Serve Gas Station

Teori bilangan. Nama Mata Kuliah : Teori bilangan Kode Mata Kuliah/SKS : MAT- / 2 sks. Deskripsi Mata Kuliah. Tujuan Perkuliahan.

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB I NOTASI, KONJEKTUR, DAN PRINSIP

Perhitungan Nilai Golden Ratio dengan Beberapa Algoritma Solusi Persamaan Nirlanjar

ISBN-10 dan ISBN-13 II. DASAR TEORI I. PENDAHULUAN

Penyelesaian Permainan Minesweeper dengan Algoritma BFS dengan Optimasi Algoritma Greedy

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

Transkripsi:

MENENTUKAN PRIMALITAS SEMUA BILANGAN YANG TERDAPAT PADA SELANG TERTENTU SECARA BRUTE FORCE E.Z. Adnan Kashogi 13505094 Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung, Jawa Barat email : ez_adnan@yahoo.co.uk ABSTRAK Bilangan prima merupakan suatu bilangan asli yang memiliki sifat unik yaitu bilangan prima hanya habis jika dibagi dengan 1 atau -1 dan dengan dirinya sendiri atau negatif dirinya sendiri. Bilangan prima terdapat tak hingga banyaknya, baik bilangan prima positif maupun bilangan prima negatif, namun bilangan prima terbesar yang berhasil diketahui adalah 2 32.582.657 1 (September 2006). Bilangan ini mempunyai 9.808.358 digit dan merupakan bilangan prima Marsenne yang ke-44 ditemukan oleh Curtis Cooper dan Steven Boone yang merupakan profesorprofesor dari University of Central Missouri. Untuk menentukan semua bilangan prima yang terdapat pada selang tertentu tidaklah mudah, algoritma yang sering digunakan untuk permasalahan ini adalah algoritma brute force. Brute force merupakan metode pemecahan masalah yang paling sederhana dan paling mudah dilakukan. Brute force memiliki pendekatan yang lempang (straightforward) untuk memecahkan suatu masalah, biasanya didasarkan langsung pada pernyataan masalah (problem statement) dan definisi konsep yang dilibatkan. Algoritma brute force menyelesaikan masalah dengan sangat sederhana, langsung dan dengan cara yang jelas (obvious way). Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya, terutama bila masalah yang dipecahkan berukuran besar (dalam hal ini masukannya). Meskipun demikian brute force dapat diterapkan pada sebagian besar masalah. Hampir tidak ada masalah yang tidak dapat dipecahkan dengan metode brute force. Bahkan ada masalah yang hanya dapat dipecahkan dengan metode brute force seperti menentukan semua bilangan prima yang terdapat pada selang tertentu ini. Kata kunci: bilangan prima, brute force, Marsenne 1. PENDAHULUAN Sebuah bilangan bulat p dengan p bukan 1 atau -1 dikatakan prima jika dan hanya jika pembagi yang dapat habis membagi bilangan p tersebut hanyalah 1, -1, p, atau p. Sifat bilangan yang demikian disebut sebagai primalitas. Terdapat tak hingga bilangan prima, baik bilangan prima positif maupun bilangan prima negatif. Contoh sepuluh bilangan prima positif pertama yaitu 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, sedangkan bilangan prima negatif contohnya yaitu -2, -3, -5, -7 dan lain-lain. Bilangan prima terbesar yang diketahui per September 2006 adalah 2 32.582.657 1. Bilangan ini memiliki 9.808.358 digit dan merupakan bilangan prima Mersenne yang ke-44. Oleh karena itu, untuk menentukan bilangan prima pada selang tertentu tidaklah mudah, dibutuhkan suatu algoritma yang dapat memecahkan permasalahan tersebut. Pada makalah ini akan dibahas algoritma yang dapat menentukan semua bilangan prima (dibatasi hanya bilangan prima positif saja) yang terdapat pada selang tertentu diantaranya dengan memanfaatkan sifat unik dari bilangan prima itu sendiri, dengan menggunakan algoritma sieve of erastothenes, atau algoritma sieve of atkin yang merupakan penyempurnaan dari algoritma sieve of erastothenes. Masing-masing algoritma tersebut memiliki kelebihan dan kekurangan yang juga akan dibahas pada makalah ini. 2. BILANGAN PRIMA Bilangan prima merupakan sebuah bilangan bulat p baik positif maupun negatif yang hanya habis jika dibagi dengan 1, -1, p atau p. Bilangan prima mempunyai beberapa sifat sebagai berikut : 1. Dalam sistem bilangan basis 10, bilangan prima selalu memiliki digit terakhir (angka satuan) 1, 3, 7, atau 9, kecuali untuk bilangan 2 dan 5, karena MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 1

angka satuan 0, 2, 4, 6, 8 (untuk bilangan selain 2) berarti kelipatan dari 2 dan angka satuan 5 untuk bilangan selain 5 berati kelipatan lima. 2. Banyaknya bilangan prima yang kurang dari atau n sama dengan n mendekati ketika n sangat log n besar. (Teorema bilangan prima). 3. Jika suatu bilangan prima p membagi hasil kali ab, dengan a, b N, maka p membagi a; atau p membagi b. (Lemma Euklid). 4. Jika p prima, maka a p -a habis dibagi p. (Fermat Little Theorem). 5. Jika n adalah bilangan bulat dengan n>1, maka pasti ada bilangan prima p, di mana n<p<2n. (Generalisasi Postulat Bertrand, postulat awal mengatakan bahwa jika n adalah sebuah bilangan bulat positif yang lebih besar dari 3, paling sedikit ada satu bilangan prima di antara n dan 2n - 2. Postulat ini pertama kali dibuktikan pada tahun 1850 oleh Pafnuty Chebyshev. Pada tahun 1932, Paul Erdös memberikan bukti menggunakan koefisien binomial). 6. Sebuah bilangan q; (q > 1) adalah bilangan prima jika dan hanya jika (q - 1)! 1 habis dibagi (divisible) oleh q (teorema Wilson/ Al- Haytham), sebaliknya bilangan bulat n; (n>4) adalah komposit jika dan hanya jika (n-1)! habis dibagi n. 7. Jika p adalah bilangan prima selain 2, 3, dan 5, 1 maka selalu berbentuk desimal berulang p dengan jumlah angka yang muncul pada setiap pengulangan berjumlah 1-p, contohnya: 1 = 0.0434782608695652173913...; 22 angka 23 berulang 1 = 0.0344827586206896551724137931...; 28 29 angka berulang 8. Jika p adalah bilangan prima yang lebih besar dari 6, maka p mod 6 hasilnya 1 atau 5; dan p mod 30 adalah 1, 7, 11, 13, 17, 19, 23 atau 29. 9. Jika p>1, maka polinom x p-1 + x p-2 + + 1 tidak dapat diperkecil (disederhanakan) lagi jika dan hanya jika p adalah bilangan prima. 10. Konstanta Copelan-Erdos, 0.235711131719232931374143, suatu bilangan irasional, didapat dengan mengurutkan bilangan prima. 11. Teorema bilangan prima mengatakan bahwa banyak bilangan prima yang kurang dari x adalah 1 mendekati (dengan kata lain, jika x sangat ln x besar, kemungkinan bahwa suatu bilangan selain x adalah prima sangat sedikit). 12. Karena bilangan prima positif, p hanya habis dibagi oleh 1 dan p, maka p mod i = 0 jika dan hanya jika i p dan i 1, sehingga kita dapat merumuskan: p 1 i = 2 p mod i 0. 13. Dalam setiap deret aritmatika divergen, yaitu a, a + q, a + 2q, a + 3q,..., a + nq dengan a dan q 1 serta a dan q koprima (prima relatif) serta n 0, maka terdapat bilangan prima yang tak hingga banyaknya, atau dengan kata lain ada tak hingga bilangan prima yang kongruen dengan a mod q (Teorema Dirichlet, dibuktikan tahun 1935). 2.1 Menentukan Primalitas Semua Bilangan Pada Selang Tertentu Secara Brute Force Bilangan prima memiliki sifat yang unik yaitu : 1. Semua bilangan yang lebih kecil atau sama dengan 100 merupakan bilangan prima jika bilangan 2, 3, 5 dan 7. 2. Semua bilangan yang lebih kecil atau sama dengan 400 merupakan bilangan prima jika bilangan 2, 3, 5, 7, 11, 13, 17 dan 19. 3. Semua bilangan yang lebih kecil atau sama dengan 10.000 merupakan bilangan prima jika bilangan 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, dan 97. 4. Semua bilangan yang lebih kecil atau sama dengan 1.000.000 merupakan bilangan prima jika semua bilangan prima yang terdapat pada selang 1 sampai 1000. Dari sifat billangan prima tersebut kita dapat menentukan primalitas suatu bilangan pada selang tertentu secara brute force sebagai berikut : 1. Untuk n suatu bilangan yang lebih kecil atau sama dengan 100, maka banyak nya bilangan dengan n <= 100*/ MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 2

public class TestPrime { if ((i==2) (i==3) (i==5) (i==7)) { else { if ((i%2!=0) && (i%3!=0) && (i%5!=0) && (i%7!=0)) { 2. Untuk n suatu bilangan yang lebih kecil atau sama dengan 400, maka banyaknya bilangan dengan n <= 400*/ public class TestPrime { if ((i==2) (i==3) (i==5) (i==7) (i==11) (i==13) (i==17) (i==19)) { else { if ((i%2!=0) && (i%3!=0) && (i%5!=0) && (i%7!=0) && (i%11!=0) && (i%13!=0) && (i%17!=0) && (i%19!=0)) { 3. Untuk n suatu bilangan yang lebih kecil atau sama dengan 10.000, maka banyaknya bilangan dengan n <= 10.000*/ public class TestPrime { if ((i==2) (i==3) (i==5) (i==7) (i==11) (i==13) (i==17) (i==19) (i==23) (i==29) (i==31) (i==37) (i==41) (i==43) (i==47) (i==53) (i==59) (i==61) (i==67) (i==71) (i==73) (i==79) (i==83) (i==89) (i==97)) { else { if ((i%2!=0) && (i%3!=0) && (i%5!=0) && (i%7!=0) && (i%11!=0) && (i%13!=0) && (i%17!=0) && (i%19!=0)&& (i%23!=0) && (i%29!=0) && (i%31!=0) && (i%37!=0) && (i%41!=0) && (i%43!=0) && (i%47!=0) && (i%53!=0)&&(i%59!=0) && (i%61!=0) && (i%67!=0) && (i%71!=0) && (i%73!=0) && (i%79!=0) && (i%83!=0) && (i%89!=0)&& (i%97!=0)) { Dari algoritma di atas kita dapat melihat bahwa untuk menentukan primalitas suatu bilangan pada selang tertentu sangat tidak efektif, karena untuk menentukan bilangan prima pada selang 1 sampai n dimana n lebih kecil atau sama dengan 100 kita harus mengetahui semua bilangan prima yang terletak pada selang 1 sampai 10. Jika n lebih kecil atau sama dengan 400 maka kita harus mengetahui semua bilangan prima yang terletak pada selang 1 sampai 20. Bahkan untuk n yang lebih besar lagi yaitu lebih kecil atau sama dengan 10.000 kita harus mengetahui semua bilangan prima yang terletak pada selang 1 sampai dengan 100. 2.2 ALGORITMA SIEVE OF ERASTOTHENES Algoritma Sieve Of Erastothenes (saringan Erastothenes) merupakan algoritma untuk menentukan primalitas suatu bilangan asli yang telah ada sejak zaman Yunani Kuno. Berikut penjelasan tentang algoritma Sieve of Erastothenes : 1. Tulis daftar bilangan - bilangan yang akan diuji primalitasnya, dari 2 hingga bilangan terbesar yang diinginkan. Sebut saja daftar ini sebagai daftar A. 2. Tandai angka dua dari daftar A dan pindahkan ke dalam daftar yang lain yang menampung bilangan bilangan prima yang kita cari. 3. Coret semua angka yang merupakan kelipatan dari 2 dalam daftar A. 4. Angka yang ditemukan berikutnya dalam daftar A adalah bilangan prima. Tandai dan pindahkan ke daftar B. 5. Coret semua angka yang merupakan kelipatan bilangan prima dalam daftar A tadi, angka yang telah dicoret sebelumnya tidak perlu dicoret lagi. 6. Ulangi proses 4 dan 5 sampai tidak ada angka yang tersisa pada daftar A. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 3

Berikut ini pseudocode dari algoritma Sieve of erastothenes : // arbitrary search limit limit 1.000.000 // assume all numbers are prime at first is_prime(i) true, i [2, limit] for n in [2, limit]: if is_prime(n): // eliminate multiples of each prime, // starting with its square is_prime(i) false, i {n², n²+n, n²+2n,..., limit for n in [2, limit]: if is_prime(n): print n Meskipun algoritma ini cukup mangkus dalam menguji primalitas semua bilangan yang terdapat pada selang tertentu, karena kita tidak perlu mengetahui bilangan prima lainnya, namun algoritma ini memerlukan waktu yang lama untuk sebuah proses penentuan primalitas semua bilangan, selain itu algoritma ini harus dimulai dari bilangan 2 agar tidak ada bilangan yang terlewatkan. 2.3 ALGORITMA SIEVE OF ATKIN Algoritma ini ditemukan oleh A. O. L. Atkin and Daniel J. Bernstein, merupakan algoritma modern yang digunakan dalam penentuan primalitas suatu bilangan. Algoritma Sieve of Atkin merupakan pengembangan dari algoritma Sieve of erastothenes yang telah dioptimasi. Algoritmanya adalah sebagai berikut: 1. Semua sisa pembagian adalah sisa modulo 60 (all remainders are modulo-sixty remainders) 2. x dan y bilangan positif real Algoritma: 1. Buat daftar hasil (result list), diisi dengan 2, 3, dan 5. 2. Buat daftar saringan (sieve list) dengan input semua bilangan asli positif, seluruh input pada daftar ini bukan merupakan bilangan prima. 3. Untuk bilangan dengan sisa modulo 60 nya adalah kelipatan 2, atau 3, atau 5 dapat diabaikan, karena bilangan tersebut sudah pasti tidak prima. 4. Untuk setiap input (n) di sieve list: Jika n mod 60 = 1, 13, 17, 29, 37, 41, 49, atau 53, cari solusi dari 4x 2 + y 2 = n. Jika n mod 60 = 7, 19, 31, atau 43, cari solusi dari 3x 2 + y 2 = n. Jika n mod 60 = 11, 23, 47, atau 59, cari solusi dari 3x 2 - y 2 = n dengan x>y. Jika n mod 60 = nilai lainnya, tinggalkan saja. 5. Mulai dengan nilai terkecil pada sieve list. 6. Ambil bilangan selanjutnya pada sieve list yang masih merupakan bilangan prima. 7. Masukkan bilangan yang ada di result list. 8. Kuadratkan angka tersebut dan tandai setiap nilai kuadrat sebagai bukan bilangan prima. Ulangi langkah 5 sampai langkah 8. Berikut ini pseudocode dari algoritma Sieve of erastothenes : // arbitrary search limit limit 1.000.000 // initialize the sieve is_prime(i) false, i [5, limit] // put in candidate primes: // integers which have an odd number of // representations by certain quadratic forms for (x, y) in [1, limit] [1, limit]: n 4x²+y² if (n limit) (n mod 12 = 1 n mod 12 = 5): n 3x²+y² if (n limit) (n mod 12 = 7): n 3x²-y² if (x > y) (n limit) (n mod 12 = 11): // eliminate composites by sieving for n in [5, limit]: if is_prime(n): // n is prime, omit multiples of its square; this is // sufficient because composites which managed to get // on the list cannot be square-free is_prime(k) false, k {n², 2n², 3n²,..., limit print 2, 3 for n in [5, limit]: if is_prime(n): print n 3. KESIMPULAN Beberapa kesimpulan yang dapat diambil dari makalah ini adalah : 1. Algoritma brute force merupakan algoritma yang menyelesaikan suatu masalah secara sederhana sehingga mudah dimengerti. 2. Algoritma brute force dapat menyelesaikan hampir semua masalah yang ada meskipun algoritma ini tidak mangkus dan umumnya tidak cerdas. 3. Untuk beberapa masalah seperti masalah menentukan semua bilangan prima pada selang tertentu yang telah dijelaskan di atas hanya algoritma brute force lah yang dapat digunakan. MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 4

REFERENSI [1] http://search.mit.edu Tanggal akses : 16 Mei 2007 Waktu akses : 15:30 [2] http://en.wikipedia.org Tanggal akses : 16 Mei 2007 Waktu akses : 15:45 [3] Munir, Rinaldi. Strategi Algoritmik. Departemen Teknik Informatika (ITB). 2007 MAKALAH IF2251 STRATEGI ALGORITMIK TAHUN 2007 5