Submeter | Todas submissőes | Melhores | Voltar |
BASES - Bases |
O que você consegue se multiplicar 6 por 9? A resposta, é claro, é 42, mas somente se você fizer os cálculos na base 13.
Dado um inteiro B >= 2
, o sistema de numeração na base B é a maneira de escrever inteiros
usando somente dígitos entre 0 e B - 1, inclusive. Em um número escrito na base B, o dígito mais à direita
tem seu valor multiplicado por 1, o segundo mais à direita tem seu valor multiplicado por B, o terceiro mais
à direita tem seu valor multiplicado por B^2, e assim por diante.
Algumas equações são verdadeiras ou falsas dependendo da base em que são consideradas. A equação 2 + 2 = 4, por exemplo, é verdadeira para qualquer B >= 5 - ela não vale para a base 4, por exemplo, visto que não existe dígito '4' na base 4. Por outro lado, uma equação como 2 + 2 = 5 nunca é verdadeira.
Escreva um programa que, dada uma equação, determine em quais bases ela é verdadeira.
Entrada
Cada linha da entrada contém um caso de teste; cada caso de teste é uma equação da forma "EXPR=EXPR"
,
onde ambos "EXPR" são expressões aritméticas com no máximo 17 caracteres.
Todas expressões são válidas e contém apenas os caracteres '+', '*' e os dígitos entre '0' e '9'. Nenhuma expressão contém sinais de mais no começo da equação e nenhum número tem zeros à esquerda
O final da entrada é indicado por uma linha contendo apenas "=".
Saída
Para cada caso de teste da entrada seu programa deve produzir uma única linha de saída, indicando para quais bases a equação dada é válida
Se a expressão for verdadeira para infinitas bases, imprima "B+"
, onde B é a primeira
base para a qual a equação é válida.
Se a expressão for válida apenas para um conjunto finito de bases, imprima elas em ordem crescente, separadas por espaço.
Se a expressão não for verdadeira em nenhuma base, imprima o caractere '*'.
Exemplo de entrada 6*9=42 10000+3*5*334=3*5000+10+0 2+2=3 2+2=4 0*0=0 =
Saída para o exemplo de entrada 13 6 10 * 5+ 2+
Adicionado por: | Wanderley Guimarăes |
Data: | 2009-01-18 |
Tempo limite: | 1s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL |
Origem: | Final Sul-Americana da Maratona de Programação da ACM 2008 |