Tenho que fazer um programa que execute as seguintes ações:
[i]Chamamos números mágicos relativos a um inteiro N > 0 qualquer par de números inteiros positivos, n1 e n2, tais que nenhum deles tenha qualquer dígito repetido e n1/n2 seja igual ao inteiro N.
Descrição:
Faça um programa que leia do teclado um número inteiro N. Após a leitura de N, seu programa deve imprimir todos os números mágicos relativos a N. Isto é, seu programa deve imprimir, no formato indicado no exemplo abaixo, todos os pares de números inteiros positivos n1 e n2 tais que n1/n2 = N.
Ao final, seu programa deve imprimir a mensagem:
Gerou XXX pares de números.
Onde XXX corresponde à quantidade de pares de números mágicos impressos pelo programa.
Se o usuário digitar um número para o qual não há números mágicos, seu programa deve imprimir a mensagem:
Não há números mágicos.
Após imprimir os números mágicos relativos a um número N e/ou a mensagem final correspondente, seu programa deve reiniciar o procedimento, voltando a ler um novo número do teclado.
Quando o usuário digitar o número 0 (zero), seu programa deve parar, imprimindo a mensagem:
Fim de programa.
Assunções e restrições:
(1) Seu programa pode imprimir uma mensagem inicial solicitando a digitação de um número inteiro.
(2) O usuário sempre irá digitar um número inteiro. Não é necessário tratar erros de formato.
(3) Assuma que o usuário pode digitar um inteiro longo.
(4) Os pares de números mágicos n1 / n2 devem ser impressos sempre com o maior número à esquerda, como mostrado no exemplo abaixo.
(5) Não deve haver linha em branco entre as mensagens relativas a um mesmo procedimento (um mesmo número lido). Deve haver uma linha em branco entre um procedimento e outro.
Exemplos:
A saída abaixo ilustra uma possível execução do programa, em que são digitados quatro números:
Digite um número inteiro: [telefone removido]
[telefone removido] / 1 = [telefone removido]
[telefone removido] / 2 = [telefone removido]
[telefone removido] / 4 = [telefone removido]
[telefone removido] / 5 = [telefone removido]
[telefone removido] / 7 = [telefone removido]
[telefone removido] / 8 = [telefone removido]
Gerou 6 pares de números.
Digite um número inteiro: -56744
Não há números mágicos.
Digite um número inteiro: 10345678
10345678 / 1 = 10345678
51728390 / 5 = 10345678
951802376 / 92 = 10345678
Gerou 3 pares de números.
Digite um número inteiro: 0
Fim de programa.[/i]
Porém estou tendo dificuldades para estruturar uma condição que leia e verifique se todos os dígitos do numerador e do numerador da fração que sempre resultará no número mágico são realmente diferentes ou não, e aplique o resultado da verificação aos cálculos.