1. Há números n que possuem a seguinte propriedade: o resultado da multiplicação de n por um determinado k é equivalente ao deslocamento do dígito das unidades de n para a primeira posição (i.e., o último dígito vira o primeiro). Assim, por exemplo, 128205 multiplicado por 4 é igual a 512820. Encontre todos os pares ( \mathrm{n}, \mathrm{k} ), em que n é um número com no máximo 6 dígitos em notação decimal, e k é um inteiro entre 1 e 9 . A definição de sua função deve ser: def pares():
  • Implemente uma solução usando for
  • Implemente uma solução usando while

Passo 1

O enunciado pede: encontrar todos os pares (n,k) tais que
  • n é um número inteiro positivo escrito em base decimal com no máximo 6 dígitos (ou seja, 1 \le n \le 999999);
  • k é um inteiro entre 1 e 9;
  • o produto k\cdot n é exatamente o número obtido ao deslocar o dígito das unidades de n para a primeira posição (o último dígito vira o primeiro).
    Informações relevantes dadas no enunciado:
  • Exemplo: 128205 multiplicado por 4 resulta em 512820, que é a rotação do dígito das unidades (o 5 foi para a frente).
  • A função pedida deve ter a assinatura def pares(): e precisamos fornecer duas implementações (uma usando for e outra usando while).

Passo 2

Modelagem matemática da rotação:
Se n tem exatamente t dígitos ( 1 \le t \le 6), podemos escrever
n = 10m + d,
onde d\in\{0,1,2,\dots,9\} é o dígito das unidades e m é a parte composta pelos t-1 dígitos mais significativos (para t\ge2, 10^{t-2} \le m \le 10^{t-1}-1; para t=1 temos m=0). A rotação que põe o último dígito na frente produz o número
R = d\cdot 10^{\,t-1} + m.
A condição do enunciado é
k\cdot n = R,
ou seja
k(10m+d) = d\cdot 10^{\,t-1} + m.

Passo 3

Manipulando a equação para isolar m:
10k\,m + k d = d\cdot 10^{\,t-1} + m
(10k-1)m = d\bigl(10^{\,t-1} - k\bigr).
Portanto
m = d\cdot\frac{10^{\,t-1}-k}{10k-1}.
Para que m seja um inteiro válido devemos ter que o numerador d(10^{\,t-1}-k) seja divisível por 10k-1. Além disso, se t\ge2 exigimos 10^{t-2}\le m \le 10^{t-1}-1, e d\neq 0 para obter um n>0 não trivial (se d=0 então a fórmula dá m=0 e n=0, que descartamos).

Passo 4

Uma observação útil (condição de divisibilidade reduzida): seja
A = 10k-1,\qquad B = 10^{\,t-1}-k.
Queremos que A divida dB. Seja g=\gcd(A,B). Escrevendo A=gA' e B=gB' com \gcd(A',B')=1, a condição passa a ser gA'\mid d\,gB', ou seja A'\mid d. Assim uma condição necessária e suficiente para existir um dígito d\in\{1,\dots,9\} que satisfaça a divisibilidade é que
A' = \frac{10k-1}{\gcd(10k-1,\,10^{\,t-1}-k)}
divida algum inteiro em \{1,\dots,9\}. Em particular é necessário A' \le 9 e que A' seja divisor de um d entre 1 e 9. Essa observação reduz muito o trabalho: para cada t e k calculamos A' e, se A' \le 9, testamos os possíveis d que são múltiplos de A'.

Passo 5

Trato especial: k=1.
Se k=1 então a equação original vira n = R. Isso significa que a rotação não altera o número — ocorre exatamente quando todos os dígitos são iguais (por exemplo 111, 22, 77777, etc.). Pela fórmula:
m = d\cdot\frac{10^{\,t-1}-1}{9},
o que dá n igual ao dígito d repetido t vezes. Para t=1,\dots,6 e d=1,\dots,9 obtemos todas as chamadas “repdigits” (números com todos os dígitos iguais). Portanto todos esses pares (n,1) são soluções válidas.

Passo 6

Aplicando a condição A' \le 9 para procurar soluções não triviais (com k\ge2), faremos t=2,3,4,5,6 e k=2,\dots,9. Aqui eu resumo o cálculo essencial (os detalhes são aplicação direta da fórmula de A'):
  • Para t=2,3,4,5 e k\in\{2,\dots,9\} verifica-se que A' é sempre maior que 9 (ou não divide nenhum d\in\{1,\dots,9\}), logo não há soluções além do caso k=1.
  • Para t=6 os cálculos mostram duas situações especiais:
    • k=4: A = 10\cdot4-1 = 39 e B = 10^{5}-4 = 100000-4 = 99996. Observa-se que 39 divide 99996 ( 99996 = 39\cdot 2564 ), logo \gcd(A,B)=39 e A'=1. Como A'=1 divide qualquer d\in\{1,\dots,9\}, existem candidatos para d. Calculando m = d\cdot\frac{99996}{39} = d\cdot 2564.Para que n tenha exatamente 6 dígitos precisamos de m\ge 10000, isto é d\cdot 2564 \ge 10000. Assim d\ge4. Tomando d=4,5,6,7,8,9 obtemos m e então n = 10m + d \in \{102564,128205,153846,179487,205128,230769\}.Cada um desses n satisfaz 4\cdot n = rotação de n (verificação direta possível multiplicando).
    • k=5: A = 10\cdot5-1 = 49 e B = 100000-5 = 99995. Calcula-se \gcd(49,99995)=7, portanto A' = 49/7 = 7. Como A'=7\le 9 e divide d somente quando d=7, apenas d=7 é candidato. Para d=7, m = 7\cdot\frac{99995}{49} = 7\cdot\frac{99995/7}{49/7} = 7\cdot\frac{14285}{7} = 14285,e n = 10\cdot14285 + 7 = 142857.Verificação direta: 5\cdot 142857 = 714285, que é exatamente a rotação que põe o 7 na frente.

Passo 7

Sumarizando as soluções encontradas:
  • Todas as soluções com k=1: n é qualquer número formado por t repetições do mesmo dígito d, com t\in\{1,\dots,6\} e d\in\{1,\dots,9\}. Em fórmula:
n = d\cdot\frac{10^{t}-1}{9},\quad d\in\{1,\dots,9\},\\ t\in\{1,\dots,6\}.
  • Soluções não-triviais com k\ge2 e t\le 6:
    • k=4 com n\in\{102564,128205,153846,179487,205128,230769\}.
    • k=5 com n=142857.

Passo 8

Implementações pedidas (duas maneiras de computar as soluções). A seguir duas funções Python que retornam a lista de pares (n,k) encontrados (uma usando laços for e outra usando while). Ambas imprimem ou retornam a mesma coleção de pares.
Implementação usando for:
def pares_for():
    resultados = []
    for n in range(1, 10**6):          # n de 1 até 999999
        s = str(n)
        rot = int(s[-1] + s[:-1])     # rotação: último dígito para a frente
        for k in range(1, 10):        # k de 1 a 9
            if k * n == rot:
                resultados.append((n, k))
    return resultados
Implementação usando while:
def pares_while():
    resultados = []
    n = 1
    while n < 10**6:
        s = str(n)
        rot = int(s[-1] + s[:-1])
        k = 1
        while k <= 9:
            if k * n == rot:
                resultados.append((n, k))
            k += 1
        n += 1
    return resultados
Observação prática: as duas versões testam diretamente a definição (rotacionar como string é simples e correto); para eficiência em prova, pode-se usar a fórmula algébrica apresentada e testar valores limitados de t,k,d, mas as implementações acima cumprem o pedido de usar for e while.

Passo 9

Verificações rápidas (para garantir que os candidatos realmente funcionam):
  • Exemplo dado: 128205. Calculando 4\cdot 128205 = 512820. Rotação de 128205: mover 5 para frente dá 512820. OK.
  • Para 142857: 5\cdot142857=714285. Rotação de 142857 (colocar 7 na frente) é 714285. OK.
  • Para um k=1 repdigit, por exemplo n=55555, 1\cdot n = n e a rotação deixa o número igual, OK.

Resposta

k=1:\\ n = d\cdot\frac{10^{t}-1}{9},\\ \text{com }d\in\{1,\dots,9\},\\ t\in\{1,\dots,6\}.
k=4:\\ n\in\{102564,\\\ 128205,\\\ 153846,\\\ 179487,\\\ 205128,\\\ 230769\}.
k=5:\\ n=142857.

Exercícios relacionados