Penjelasan alurnya
Bilangan prima hanya habis dibagi 1 dan dirinya sendiri. Flowchart ini memakai variabel penanda prima yang diisi 1 sebagai anggapan awal, lalu diubah menjadi 0 begitu ditemukan pembagi.
Perulangan mencoba pembagi i dari 2 selama i * i <= n. Pembagi yang lebih besar dari akar bilangan tidak perlu dicoba, karena pasangannya pasti sudah dicoba lebih dulu. Cara ini jauh lebih cepat daripada mencoba semua bilangan sampai n.
Keputusan pertama menangani bilangan di bawah 2. Bilangan 0 dan 1 bukan prima walau tidak punya pembagi di antara 2 dan akarnya.
Pseudocode
1ALGORITMA Bilangan prima23DEKLARASI4 n, prima, i : integer56MULAI7 BACA n8 prima ← 19 JIKA n < 2 MAKA10 prima ← 011 AKHIR JIKA12 i ← 213 SELAMA i * i ≤ n LAKUKAN14 JIKA n mod i = 0 MAKA15 prima ← 016 AKHIR JIKA17 i ← i + 118 AKHIR SELAMA19 JIKA prima = 1 MAKA20 TAMPILKAN "Bilangan prima"21 SELAIN ITU22 TAMPILKAN "Bukan bilangan prima"23 AKHIR JIKA24SELESAIKode programnya
Kode di bawah dibuat langsung dari flowchart di atas, jadi alurnya sama persis. Coba jalankan dengan masukan 29.
1# Bilangan prima23n = int(input("Masukkan n: "))4prima = 15if n < 2:6 prima = 07i = 28while i * i <= n:9 if n % i == 0:10 prima = 011 i = i + 112if prima == 1:13 print("Bilangan prima")14else:15 print("Bukan bilangan prima")1// Bilangan prima23let n, prima, i;45n = Number(prompt("Masukkan n:"));6prima = 1;7if (n < 2) {8 prima = 0;9}10i = 2;11while (i * i <= n) {12 if (n % i === 0) {13 prima = 0;14 }15 i = i + 1;16}17if (prima === 1) {18 console.log("Bilangan prima");19} else {20 console.log("Bukan bilangan prima");21}1<?php23// Bilangan prima45$n = (int) readline("Masukkan n: ");6$prima = 1;7if ($n < 2) {8 $prima = 0;9}10$i = 2;11while ($i * $i <= $n) {12 if ($n % $i == 0) {13 $prima = 0;14 }15 $i = $i + 1;16}17if ($prima == 1) {18 echo "Bilangan prima" . PHP_EOL;19} else {20 echo "Bukan bilangan prima" . PHP_EOL;21}1// Bilangan prima2#include <stdio.h>34int main(void) {5 int n = 0, prima = 0, i = 0;67 printf("Masukkan n: ");8 scanf("%d", &n);9 prima = 1;10 if (n < 2) {11 prima = 0;12 }13 i = 2;14 while (i * i <= n) {15 if (n % i == 0) {16 prima = 0;17 }18 i = i + 1;19 }20 if (prima == 1) {21 printf("Bilangan prima\n");22 } else {23 printf("Bukan bilangan prima\n");24 }2526 return 0;27}1// Bilangan prima2import java.util.Scanner;34public class Program {5 public static void main(String[] args) {6 Scanner input = new Scanner(System.in);7 int n = 0, prima = 0, i = 0;89 System.out.print("Masukkan n: ");10 n = Integer.parseInt(input.nextLine().trim());11 prima = 1;12 if (n < 2) {13 prima = 0;14 }15 i = 2;16 while (i * i <= n) {17 if (n % i == 0) {18 prima = 0;19 }20 i = i + 1;21 }22 if (prima == 1) {23 System.out.println("Bilangan prima");24 } else {25 System.out.println("Bukan bilangan prima");26 }27 }28}Jalankan kodenya tanpa instalasi di compiler Python online atau compiler bahasa lain di Playground.
Coba ubah sendiri
- Tampilkan semua bilangan prima dari 2 sampai N.
- Hentikan perulangan begitu pembagi pertama ditemukan.
- Hitung banyak bilangan prima di bawah 100.