jueves, 22 de diciembre de 2011

Problema A: Dígitos Divisores UNMSM-FISI 2011

Concurso de Programación UNMSM-FISI 2011

Problema A: Dígitos Divisores

Descargar problema: UNMSM-FISI 2011 Problema A

import java.io.*;

public class ProblemaA
{
    public static void main( String args[] ) throws IOException
    {
        // Permitira leer datos ingresados
        BufferedReader br = new BufferedReader( new InputStreamReader(
                                                System.in ) );

        // Cantidad de numeros que se analizaran
        int cantNumeros = Integer.parseInt( br.readLine() );

        // Almacena cada numero leido
        int numero;

        // Cantidad de digitos de 'numero' que pueden dividir a numero
        int cantDivisores;

        // Permitira trabajar con el numero sin modificar el original
        int copia;

        for( int i = 0; i < cantNumeros; i ++ )
        {
            numero = Integer.parseInt( br.readLine() );

            copia = numero;

            cantDivisores = 0;
   
            // Procesamos cada digito que este más a la derecha
            while( copia > 0 )
            {
                // Verificamos que el digito sea diferente de cero
                // y si puede dividir a 'numero'
                if( copia % 10 != 0 && numero % ( copia % 10 ) == 0 )
                    cantDivisores ++;

                // Eliminamos el digito de más a la derecha
                copia = copia / 10;
            }  

            // Mostramos la salida
            System.out.println( "Caso #" + (i + 1) + ": " + cantDivisores);
        }
    }
}

No hay comentarios:

Publicar un comentario