freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-450-hypocycloid-and...

2.3 KiB
Raw Blame History

id challengeType title videoUrl localeTitle
5900f52e1000cf542c510041 5 Problem 450: Hypocycloid and Lattice points Problema 450: Pontos Hipocicloides e Lattice

Description

Um hipocicloide é a curva desenhada por um ponto em um pequeno círculo dentro de um círculo maior. As equações paramétricas de um hipociclo centrado na origem e começando no ponto mais à direita são dadas por: $ x (t) = (R - r) \ cos (t) + rs cos (\ frac {R - r} rt) $ $ y (t) = (R - r) \ sin (t) - r \ sin (\ frac {R - r} rt) $ Onde R é o raio do círculo grande e r raio do pequeno círculo.

Seja $ C (R, r) $ o conjunto de pontos distintos com coordenadas inteiras no hipocicloide com raio R er para o qual existe um valor correspondente de t tal que $ \ sin (t) $ e $ \ cos ( t) $ são números racionais.

Seja $ S (R, r) = \ sum _ {(x, y) \ em C (R, r)} | x | + | y | $ é a soma dos valores absolutos das coordenadas x e y dos pontos em $ C (R, r) $.

Seja $ T (N) = \ soma {R = 3} ^ N \ soma {r = 1} ^ {\ lfloor \ frac {R - 1} 2 \ rfloor} S (R, r) $ seja a soma de $ S (R, r) $ para R e r inteiros positivos, $ R \ leq N $ e $ 2r <R $.

Você recebe: C (3, 1) = {(3, 0), (-1, 2), (-1,0), (-1, -2)} C (2500, 1000) = {(2500 , 0), (772, 2376), (772, -2376), (516, 1792), (516, -1792), (500, 0), (68, 504), (68, -504), ( -1356, 1088), (-1356, -1088), (-1500, 1000), (-1500, -1000)}

Nota: (-625, 0) não é um elemento de C (2500, 1000) porque $ \ sin (t) $ não é um número racional para os valores correspondentes de t.

S (3, 1) = (| 3 | + | 0 |) + (| -1 | + | 2 |) + (| -1 | + | 0 |) + (| -1 | + | -2 |) = 10

T (3) = 10; T (10) = 524, T (100) = 580442; T (103) = 583108600.

Encontre T (106).

Instructions

Tests

tests:
  - text: <code>euler450()</code> deve retornar 583333163984220900.
    testString: 'assert.strictEqual(euler450(), 583333163984220900, "<code>euler450()</code> should return 583333163984220900.");'

Challenge Seed

function euler450() {
  // Good luck!
  return true;
}

euler450();

Solution

// solution required