miércoles, 25 de noviembre de 2009

Logaritmo entero (3)

Si deseas investigar con el logaritmo entero (función sofpr(n)) puedes usar este código en Basic para implementarlo en Excel o en Calc de OpenOffice.org. Es bastante eficiente, y similar al de encontrar todos los factores primos de un número.

Para no complicarlo no se han usado los tipos de datos.

Los comentarios van entre corchetes y en verde

Public function sofpr(n) [se declara pública para poderla usar en cualquier celda]
Dim ene,f,c,s [creación de variables]

ene=n [la variable ene recoge el argumento para preservar su valor]
f=1 [contendrá los factores primos]
s=0
[contendrá la suma de primos]

[bucle para encontrar los factores primos y sumarlos]
while ene>1 [la variable ene va disminuyendo en el algoritmo]
f=f+1 [la variable f va aumentando para buscar factores primos]

[bucle para determinar si f es factor primo y si se repite]
while ene/f=int(ene/f)
[determina si f es divisor y busca sus repeticiones]
ene=ene/f
[se divide ene entre el factor, que ya se sabe que lo es]
s=s+f [se incorpora f a la suma de primos]
wend
[fin de bucle]

wend [fin de bucle]

sofpr=s [la función sofpr recoge el valor de s]
End function

No hay comentarios: