% -*- coding: iso-8859-2 -*-
\documentclass[a4paper]{article}
\usepackage{progm}
\analpacks
\analoldal{2. feladatsor, 25. feladat}
\begin{document}
\noindent
\emph{Feladat:} Határozzuk meg az $n$ természetes szám legkisebb valódi nem prím osztóját!

\emph{Specifikáció:}\\
$A = \alatt{\N}{n} \times \alatt{\L}{l} \times \alatt{\N}{i}$\\
$B = \alatt{\N}{n'}$\\
$Q = ( n=n' )$\\
$R = ( Q \es l=(\exists j\in[2..n-1]:\nem\text{prím}(j) \es j|n) \es l\nyil(i\in[2..n-1] \es \nem\text{prím}(i) \es i|n \es \forall j\in[2..i-1]:(\text{prím}(j) \vagy j\hspace{-0.4em}\not|n)) )$

Visszavezetés lineáris keresés 2.8-ra, alteres, ugyanis konstanssal ($2$-vel) helyettesítettük az $m$-et.

\begin{tabular}{ccc}
feladat &  & lin. ker. 2.8 \\
\hline
$2$ & \knyil & $m$ \\
$n-1$ & \knyil & $n$ \\
$\nem\text{prím}(i) \es i|n$ & \knyil & $\beta(i)$
\end{tabular}

\begin{stuki}[6cm]
  \stm{i,l:=1,\hamis}
  \begin{WHILE}{2}{\stm{\nem l \es i \ne n-1}}
    \stm{l:=\nem\text{prím}(i+1) \es (i+1)|n}
    \stm{i:=i+1}
  \end{WHILE}
\end{stuki}

\end{document}
