You are on page 1of 3

Ctedra: INFORMTICA (C.C.A.) cursado: 1cuat.

Ao 2012
C.U. Nestor Javier Hurtado
Univ.Nac.de Salta Fac.de Ingeniera

Tratamiento de Dgitos de un Nmero


Introduccin
Antes de descomponer un nmero entero en sus dgitos veamos una caracterstica importante
y que luego utilizaremos.
Al dividir por 10 (diez) en forma entera cualquier nmero entero, el resto de la divisin
coincide con el dgito extremo derecho del nmero.
Ejemplos:

En el ejemplo 1 el resto 9 coincide con el dgito extremo derecho de 379, en el ejemplo 2 el


resto 1 coincide con el dgito extremo derecho de 21, en el ejemplo 3 el resto 8 coincide con el
dgito extremo derecho de 17398, y en el ejemplo 4 el resto 4 coincide con el dgito extremo
derecho de 1024.
Aprovechando sta caracterstica y sabiendo cmo calcular el cociente entero de una divisin y
el resto de la misma, vamos a descomponer un nmero entero en sus dgitos y operar con
esos dgitos.
Recordemos como calcular estos valores:
Resto de la divisin entera % 10, es el dgito: digitoDerecho = numero % 10
Cociente entero, prximo nmero a iterar:

CocienteproxNum = int( numero / 10 )

Descomposicin de un nmero entero en dgitos


Veamos el siguiente ejemplo. El nmero 5746.

En el 1 paso dividimos 5746 en 10 obteniendo el resto 6 y el cociente 574


En el 2 paso dividimos el cociente anterior (574 en 10) obteniendo el resto 4 y el cociente 57
En el 3 paso dividimos el cociente anterior (57 en 10) obteniendo el resto 7 y el cociente 5
En el 4 paso dividimos el cociente anterior (5 en 10) obteniendo el resto 5 y el cociente 0
En el 5 paso dividimos el cociente anterior (0 en 10) obteniendo el resto 0 y el cociente 0
A partir del 6 paso todos lo cocientes y restos que calculemos sern cero, por lo tanto sern
innecesarios.
Algoritmo
Dado un nmero entero, descomponerlo en dgitos y mostrar cada uno de ellos.
El algoritmo consiste en dividir repetidamente por 10.
Como no podemos determinar la cantidad de divisiones necesarias para descomponer un
nmero, utilizaremos un ciclo condicionado (Mientras) con condicin (nmero <> 0) (numero
distinto de cero).
O sea mientras el nmero a dividir sea distinto de cero, calculamos el cociente y el resto, luego
tomamos el cociente como el nuevo nmero para el nuevo cociente, y as seguimos.

1/3

Ctedra: INFORMTICA (C.C.A.) cursado: 1cuat. Ao 2012


C.U. Nestor Javier Hurtado
Univ.Nac.de Salta Fac.de Ingeniera
x=5746
mientras(x <> 0)
{
resto = x % 10;
imprimir("\t",resto);
x = int(x / 10);

// Resto almacena el dgito extrema derecha de x.


// muestra el dgito extremo derecho de x.

// el cociente ser el nuevo x para la siguiente iteracin.

Algoritmo completo en SLE


programa digitos // Dado un nmero entero, mostrar sus dgitos individualmente.
var
x,
//Nmero a descomponer.
resto,
//Resto del cociente. Dgito.
cociente:numerico; //Cociente entero de la divisin.
inicio
cls();

//Solicitud del nmero a descomponer.

imprimir("Ingrese un nmero entero: ");


leer(x);
//Impresin de cada dgito.

imprimir("\nLos dgitos de ",x," son:");


mientras(x <> 0)
{
resto = x % 10;
// Resto almacena el dgito extrema derecha de x.
imprimir("\n",resto); // mostrar el dgito.
x = int(x / 10);

// tomar el cociente como el nuevo x para la prx.iterac.

}
fin

Un ejemplo de aplicacin
Calcular y mostrar el promedio de los dgitos de un nmero entero.
programa digitos
var
x,
resto,
cociente,
cont,
suma,
prom:numerico ;
inicio
cls();

//nmero a descomponer.
//resto del cociente. dgito.
//cociente entero de la divisin.
//contador de dgitos.
//acumulador de dgitos.
//promedio de los dgitos.

//Soicitud del nmero a descomponer.

imprimir("Ingrese un nmero entero: ");

leer(x);

//Clculo del promedio de los dgitos.

imprimir("\nLos dgitos de ",x," son:");


cont=0 ;
suma=0 ;
// Inicializacin del contador y del acumulador.
mientras(x <> 0)
{
resto = x % 10
;
// Dgito de x.(Resto).
imprimir("\n",resto) ;
// muestra el dgito.
cont = cont + 1
;
suma = suma + resto ;

// Cuenta los dgitos.


// Acumula los dgitos.

x = int(x / 10)

// Calcula el cociente.

}
//Clculo del promedio de dgitos y muestra resultado final.

prom = suma / cont;


imprimir("\n\nEl promedio de los dgitos es: ",prom);
fin

2/3

Ctedra: INFORMTICA (C.C.A.) cursado: 1cuat. Ao 2012


C.U. Nestor Javier Hurtado
Univ.Nac.de Salta Fac.de Ingeniera

NUMERO PRIMO
Un nmero es primo si es divisible solo por 1 y por s mismo, o sea si solo tiene dos divisores.
El algoritmo consiste en contar todos los divisores de un nmero X dado y luego determinar
si este contador es exactamente igual a 2 no. Si es exactamente 2 conclumos que el nmero
X es primo, en caso contrario conclumos que el nmero X no es primo.

3/3