ifK<=2 # if K <= 2: $2=K*K # $1 := K**6+5*K**4+6*K**2+1; $2=$2+1 # $0 := K**5+4*K**3+3*K; $3=$2*K # $2 := K**4+3*K**2+1; $0=$3+K $1=$0*K $2=$1+$2 $3=$2*K $0=$3+$0 $1=$0*K $1=$1+$2 end # end ifK>=3 # if K >= 3: $1=K*K # $1 := K**2+1; $1=$1+1 $0=K # $0 := K; $2=1 # $2 := 1; end # end while$1<100000 # while $1 < 100000: $3=$0*$0 # $1,$0,$2 := ($0*$0+$1*$1),($0*($1+$2)),($0*$0+$2*$2); $4=$1+$2 $0=$0*$4 $1=$1*$1 $2=$2*$2 $1=$1+$3 $2=$2+$3 end # end $4=N/K while$1<=$4 # while $1 <= (N/K): $2=$1 # $1,$0,$2 := (($1*K+$0)*K+$1),($1*K+$0),($1); $3=$1*K $0=$3+$0 $1=$0*K $1=$1+$2 end # end if$0<=$4 # if $0 <= (N/K): $2=$0 # $1,$0,$2 := ($1*K+$0),($1),($0); $0=$1 $1=$0*K $1=$1+$2 end # end if$0<=N # if $0 <= N: $3=N/$0 # $3 := N/$0+1; $3=$3+1 $1=$1*$3 # $1 := $1*$3+$0; $1=$1+$0 $0=$0*$3 # $0 := $0*$3+$2; $0=$0+$2 end # end $2=$1-$0 # $0,$2 := ($0*N),($1-$0); $0=$0*N ifM==0 # if M==0: $2=$2+K # $0 := $0-($2+K-1)/K; $2=$2-1 $2=$2/K $0=$0-$2 end # end ifM>1 # if M>1: $3=M-1 # $3 := M-1; $4=$2/K # $0 := $0+($2/K)*(M-1); $4=$4*$3 $0=$0+$4 $2=$2%K # $0 := $0+($2%K)*(M-1)/K; $2=$2*$3 $2=$2/K $0=$0+$2 end # end $0=$0/$1 # return ($0/$1+N); $0=$0+N return$0