RosettaCodeData/Task/Smith-numbers/Amazing-Hopper/smith-numbers.hopper
2023-12-16 21:33:55 -08:00

46 lines
1.1 KiB
Text

#include <basico.h>
#proto muestranúmeroencontrado(_X_)
algoritmo
resultado={}, primos="", suma1=0, suma2=0 , i=1
temp_primos=0,
fijar separador 'NULO'
decimales '0'
iterar para ( num=4, #(num<=10000), ++num )
ir por el siguiente si ' es primo(num) '
obtener divisores de (num);
luego obtener los primos de esto para 'primos'
sumar los dígitos de 'num'; guardar en 'suma2'
/* análisis p-ádico */
guardar 'primos' en 'temp_primos'
iterar para(q=1, #( q<=length(temp_primos) ) , ++q )
iterar para( r=2, #( (num % (temp_primos[q]^r)) == 0 ), ++r )
#(temp_primos[q]); meter en 'primos'
siguiente
siguiente
sumar dígitos de cada número de 'primos'
guardar en 'suma1'
'suma1' respecto a 'suma2' son iguales?
entonces{
_muestra número encontrado 'num'
}
siguiente
terminar
subrutinas
muestra número encontrado (x)
imprimir ( #(lpad(" ",4,string(x))), solo si ( #(i<8), " " ) )
++i
cuando ( #(i>8) ){
saltar, guardar '1' en 'i'
}
retornar