46 lines
1.1 KiB
Text
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
|