Respostas dos puzzles 2025

Enunciado:

1) 2025 é um quadrado perfeito, ou seja, 2025 = x^2, para um valor inteiro positivo de x. Qual o valor de x?

2) 2025 pode ser obtido pela soma de dois quadrados, ou seja, 2025 = a^2 + b^2. Quais os valores de a e b, inteiros não negativos e diferentes entre si, que satisfazem a equação?

3) 2025 divide ou não 82^4 – 1?

Bônus. Existem infinitos números da forma 20025, 200025, 2000025, 20000…25, divisíveis por 2025?

Respostas:

As três primeiras são diretas, então seguem as respostas.

1) 2025 = 45^2

2) 2025 = 27^2 + 36 ^2

3) Sim. No Python, faça (82**4 – 1)/2025, para visualizar o resultado.

Ou podemos fazer 82⁴ – 1 = (82² – 1)(82² + 1) = 6723*6725.

Lembrando que 2025 = 81*25, basta testar se o número é divisível por 81 (9*9) e 25.

6725 é divisível por 25.

E 6723 é divisível por 81, já que 6723/9 = 747, e 747/9 = 83.

Portanto, 2025 divide 82^4 – 1.

Questão Bônus: Sim, existem infinitos números da forma 20025, 200025, 2000025, 20000…25, divisíveis por 2025.

Prova longa:

Vamos iniciar fazer algumas contas, para verificar se encontramos algum logo de início.

Um código como o seguinte gera números no formato 20…25:

for i in range(1,10):
   numero = int('2' + i*'0' + '25')
   print(numero)

Adaptando o código para fazer a divisão, temos:

for i in range(1,15):
   numero = int('2' + i*'0' + '25')
   valorDividido = numero/2025
   print(i, " ", valorDividido)

Aqui, nota-se que para i = 10 dá uma divisão exata. E parece haver um padrão.

Para valores maiores, fica difícil fazer essa conta, porque esbarra em problemas numéricos.

Exemplo, o valor calculado para números grandes resulta em zero, mas não é.

for i in range(1,30):
   numero = int('2' + i*'0' + '25')
   valorDividido = numero/2025
   print(i, " ", valorDividido - int(valorDividido))

Sempre vai chegar uma hora que o computador não aguenta, e temos que partir para a teoria.

Bom, temos um bom indício de que há infinitos valores que seguem o padrão e são divisíveis por 2025. Como provar?

Vamos decompor 2025 nos fatores primos. 2025 = 81*25 = 3^4 * 5^2.

Aqui dá para usar umas regrinhas de bolso de divisibilidade.

Como 20000…25 termina em 25, é divisível por 25, então nem vamos nos preocupar com este fator.

O outro fator, 81, é igual a 9×9.

Isso lembra outra regra de bolso. Se a soma dos dígitos de um número na base decimal é divisível por 9, o número é divisível por 9.

Exemplo: para analisar 2025, somamos 2+0+2+5 = 9 e é divisível por 9.

Todos os números da forma 20000…25 têm soma de dígitos igual a 9, portanto são divisíveis por 9.

Mas queremos testar divisibilidade por 81, que é igual a 9×9.

Então, vamos dividir primeiro por 9, e aplicar a regra da soma no resultado.
2025 / 9 = 225
20025 / 9 = 2225
200025 / 9 = 22225
2000025 / 9 = 222225

Temos claramente um padrão, o que dá para notar quando fazemos a conta “no braço”: multiplicamos 9 por 2, dando 18, e quando tiramos de 20, sobra 2, e recomeça o ciclo.

Aplicando a regra da soma dos dígitos:
Soma dígitos (225) = 9
Soma dígitos (2225) = 11
Soma dígitos (22225) = 13
Soma dígitos (222225) = 15

Ou seja, sempre vai somando 2 ao valor inicial 9. Portanto, chegará num momento em que a soma dará 27, 45, etc, todos múltiplos de 9. Na verdade, o padrão sempre se repetirá quando somarmos o 2, 9 vezes, ou seja, a cada 9 zeros a mais.

Podemos ilustrar isso para os primeiros padrões. Utilizando o pacote fractions, temos a fração exata.

from fractions import Fraction
for i in range(1,30):
   numero = int('2' + i*'0' + '25')
   valorDividido = Fraction(numero,2025)
   print(i, " ", valorDividido)

Portanto, temos infinitos números da forma 200…25 divisíveis por 2025, e o período de repetição é a cada 9 zeros adicionais.

Nota: dá para resolver por Teoria dos Números, mas como para este caso existe uma solução mais simples, vamos ficar com ela.

Deixe um comentário