\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\froman\fcharset1 Times New Roman;}{\f4\fmodern\fprq1 Courier New;}}
{\colortbl\red0\green0\blue0;\red255\green0\blue0;\red0\green0\blue255;}
\deflang1031\pard\ri4\plain\f3\fs22\cf0 01.
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs22\cf1 {\pntext\f1\'b7\tab}IntegerExponent:=proc(p,a)
\par \pard\li600\ri1\fi-300\plain\f4\fs22\cf1 local exponent,c;
\par begin
\par exponent:=-1;
\par c:=p;
\par while testtype(c,Type::Integer) do
\par c:=c/a;
\par exponent:=exponent+1;
\par end_while;
\par exponent;
\par end_proc:
\par
\par RabinMillerPrime:=proc(p)
\par local a,rnd,s,u,fertig,potenz;
\par begin
\par s:=IntegerExponent(p-1,2);
\par u:=(p-1)/2^s;
\par if args(0)>1
\par then a:=args(2);
\par else rnd:=random(2..p-1);
\par a:=rnd();
\par end_if;
\par potenz:=powermod(a,u,p);
\par if potenz=1
\par then if p<10^10
\par then print(_concat("Die Zahl ",p," ist strenge Pseudoprimzahl zur Basis ",a,"."))
\par else print(_concat("Die eingegebene Zahl ist strenge Pseudoprimzahl zur Basis",a,"."))
\par end_if;
\par return(TRUE);
\par end_if;
\par fertig:=FALSE:
\par while not fertig and u