2020 ao quadrado

Como encontrar pares de inteiros (não-negativos e maiores do que zero), tais que a^2 + b^2 = 2020^2?

Este tópico trouxe várias respostas criativas.

Resposta: são 4 pares (a,b) tais que a^2+b^2 = 2020^2:

 400 e 1980

868 e 1824

1212 e 1616

1344 e 1508

Seguem 4 resoluções, partindo da mais fácil para a mais elegante.

  1. O Arthur Bratti (de Santa Catarina) fez um tabelão, com as linhas e colunas variando de 1 a 2020, fez as contas para todas as alternativas, e ficou somente com as que davam 2020^2 = 4.080.400. Infelizmente, o excel ficou grande demais para enviar por e-mail. Como usa somente fórmulas de Excel, a lógica é bem simples.

O print abaixo é uma ilustração do método.

  1. Em VBA dá para fazer um loop for dentro de outro. Se for igual a 2020^2, guardo a solução, senão, vou para a próxima.

For i = 1 To 2019

    For j = i + 1 To 2019

        If i ^ 2 + j ^ 2 = 2020 ^ 2 Then

            c = c + 1

            sol(c, 1) = i

            sol(c, 2) = j

        End If

    Next

Next

  1. Python é a linguagem padrão em análise de dados (vide comentário aqui:

https://www.linkedin.com/posts/arnaldogunzi_as-linguagens-de-analytics-no-%C3%BAltimo-f%C3%B3rum-activity-6611608415540137984-48zg)

O mesmo código, em Python:

sol =[]

for a in range(2020):

    for b in  range(a+1,2020):

        if a**2 + b**2 == 2020**2:

            sol.append([a,b])

print(sol)

Note como Python é conciso e direto ao ponto.

  1. A solução mais elegante de todas for enviada pelo grande Marcos Melo. Utiliza matemática, ao invés de computação. Transcrevo aqui suas palavras.

A fórmula que engloba todos os números Pitagóricos é:

A= k*(X^2-Y^2)

B=k*(2*X*Y)

C= k*(X^2+Y^2)

Onde X e Y são primos entre si.

Como 2020 é 1*2*2*5*101

A chave é encontrar os resultados de hipotenusa X^2+Y^2=5: =101 e =505;

A hipotenusa 5 é do bem conhecido triângulo 3, 4 e 5 resultado do par X=2 e Y=1; multiplicado por 404 será de hipotenusa 2020.

(ou seja, resultado 1212 e 1616).

A hipotenusa 101 é do 20, 99 e 101 resultado do par X=10 e Y=1; multiplicado por 20 será de hipotenusa 2020.

(ou seja, o par 400 e 1980).

A hipotenusa 505 tem dois: o formado por X=21 e Y=8 e o X=19 e Y=12, que resultam nos triângulos 336, 377 e 505; e 217, 456.e 505; ambos multiplicados por 4 serão de hipotenusa 2020;

(ou seja, os dois pares faltantes: 868 e 1824; 1344 e 1508).