Saturday, February 1, 2014

Bilangan Prima

Definisi:
Suatu bilangan asli (natural number) disebut prima atau bilangan prima jika memiliki tepat dua pembagi (divisor) positif, yaitu 1 dan bilangan itu sendiri. 
(Bilangan asli yang lebih besar dari 1 dan bukan bilangan prima disebut bilangan komposit.)

Sekarang, tahukah Anda bilangan mana saja di antara 246 dan 305 yang termasuk bilangan pima? Atau, dapatkah Anda menuliskan 50 bilangan prima yang pertama?

Nah, dengan $\small\LaTeX$ kedua masalah tersebut dapat dengan mudah terjawab. Untuk kasus pertama kita gunakan paket tikz-euclide sebagai berikut.



\documentclass{article}
\usepackage{tkz-euclide}
\title{Bil Prima-Euclide}
\newif\ifcomma

\newcommand{\primes}[2]{%
  \commafalse%
  \foreach\numb in {#1,...,#2}{%
     \pgfmathisprime{\numb}%
     \ifnum\pgfmathresult=1
       \ifcomma, \numb\else\numb\global\commatrue\fi%
     \fi%
  }%
}

\begin{document}

Bilangan prima antara 1 dan 10 adalah
\primes{1}{10}\\

Bilangan prima antara 1 dan 100 adalah
\primes{1}{100}\\

Bilangan prima antara 246 dan 305 adalah
\primes{246}{305}\\

Bilangan prima antara 900 dan 1000 adalah
\primes{900}{1000}

\end{document}

Hasilnya:

Untuk kasus kedua kita gunakan macro sebagai berikut.
\documentclass{article}
\title{Bil Prima}
%
\makeatletter
\newif\ifprime \newif\ifunknown % boolean variables
\newcount\n \newcount\p \newcount\d \newcount\a % integer variables
\def\primes#1{2,~3% assume that #1 is at least 3
\n=#1 \advance\n by-2 % n more to go
\p=5 % odd primes starting with p
\loop\ifnum\n>0 \printifprime\advance\p by2 \repeat}
\def\printp{, % we will invoke \printp if p is prime
\ifnum\n=1 and~\fi % ‘and’ precedes the last value
\number\p \advance\n by -1 }
\def\printifprime{\testprimality \ifprime\printp\fi}
\def\testprimality{{\d=3 \global\primetrue
\loop\trialdivision \ifunknown\advance\d by2 \repeat}}
\def\trialdivision{\a=\p \divide\a by\d
\ifnum\a>\d \unknowntrue\else\unknownfalse\fi
\multiply\a by\d
\ifnum\a=\p \global\primefalse\unknownfalse\fi}
\makeatother   
%
\begin{document}

Lima puluh bilangan prima pertama adalah \primes{50}

Seratus bilangan prima pertama adalah \primes{100}

\end{document}

Hasilnya:
















Demikian semoga bermanfaat.

Adjie Gumarang Pujakelana 2014

-->

No comments:

Related Posts Plugin for WordPress, Blogger...