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:
Publicar un comentario