freeCodeCamp/curriculum/challenges/portuguese/08-coding-interview-prep/project-euler/problem-465-polar-polygons....

2.0 KiB

id challengeType title videoUrl localeTitle
5900f53d1000cf542c510050 5 Problem 465: Polar polygons Problema 465: Polígonos polares

Description

O núcleo de um polígono é definido pelo conjunto de pontos a partir dos quais todo o limite do polígono é visível. Nós definimos um polígono polar como um polígono para o qual a origem é estritamente contida dentro de seu kernel.

Para este problema, um polígono pode ter vértices colineares consecutivos. No entanto, um polígono ainda não pode ter auto-interseção e não pode ter área zero.

Por exemplo, apenas o primeiro dos seguintes é um polígono polar (os núcleos do segundo, terceiro e quarto não contêm estritamente a origem e o quinto não tem um kernel):

Observe que o primeiro polígono tem três vértices colineares consecutivos.

Seja P (n) o número de polígonos polares, de modo que os vértices (x, y) tenham coordenadas inteiras cujos valores absolutos não sejam maiores que n.

Observe que os polígonos devem ser contados como diferentes se tiverem um conjunto diferente de arestas, mesmo que incluam a mesma área. Por exemplo, o polígono com vértices [(0,0), (0,3), (1,1), (3,0)] é distinto do polígono com vértices [(0,0), (0,3 ), (1,1), (3,0), (1,0)].

Por exemplo, P (1) = 131, P (2) = 1648531, P (3) = 1099461296175 e P (343) mod. 1 000 000 007 = 937293740.

Encontre P (713) mod 1 000 000 007.

Instructions

Tests

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

Challenge Seed

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

euler465();

Solution

// solution required