Diferencia entre revisiones de «Implementación de algoritmos de teoría de números/Función φ de Euler»

Contenido eliminado Contenido añadido
Raulshc (discusión | contribs.)
+página, trasladado de eswiki https://es.wikipedia.org/w/index.php?title=Funci%C3%B3n_%CF%86_de_Euler&oldid=86112906 bajo licencia GFDL y CC SA BY 3.0
 
Raulshc (discusión | contribs.)
+contenido
Línea 16:
 
donde los ''p'' son los distintos primos que dividen a ''n''.
 
== Descripción formal ==
=== Versión iterativa ===
 
De la definición general,
 
:<math>\varphi(n) := \sum_{{1 \leq k \leq n}\atop {\operatorname{mcd}(k,n)=1}} 1 </math>
 
y tomando por convenio que φ(0)=1, se obtiene la versión [[Iteración|iterativa]].
 
'''función''' <math>\varphi(n)\,</math>
'''devolver''' <math>1</math> '''si''' <math>n=0\,</math>
<math>j \leftarrow 0</math>
'''para''' <math>k \in 1..n</math> '''hacer'''
<math>j \leftarrow j+1</math> '''si''' <math>\operatorname{mcd}(n,k)=1</math>
'''devolver''' <math>j</math>
 
Esta versión tiene fácil implementación en una computadora, pero no es eficiente para valores grandes de ''n'':
 
=== Versión por factorización ===
 
Se basa en la definición de la función mediante el producto de Euler
 
:<math>\varphi(n):= n\prod_{p|n}\left(1-\frac{1}{p}\right)</math>
 
y utiliza algún algoritmo de factorización eficiente de propósito general como puede ser la criba general del cuerpo de números (GNFS).
 
== Implementación en Matlab/Octave ==
Línea 41 ⟶ 67:
endfunction
</source>
 
== Referencias ==
* Octavian Cira, Florentin Smarandache, ''Solving Diophantine Equations'', Infinite Study, ISBN 1599733072, pp:64-68