Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

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:0.216s
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

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.