Considere los tres segmentos L1, L2 y L3: L1: (27, 44) a (12, 32) L2: (46, 53) a (17, 62) L3: (46, 70) a (22, 40) Se puede verificar que los segmentos de línea L2 y L3 tienen un verdadero punto de intersección. Notamos que como uno de los puntos finales de L3: (22,40) se encuentra en L1, esto no se considera un verdadero punto de intersección. L1 y L2 no tienen un punto común. Entonces, entre los tres segmentos de línea, encontramos un verdadero punto de intersección. Ahora hagamos lo mismo para 5000 segmentos de línea. Para este fin, generamos 20000 números utilizando el llamado generador de números pseudoaleatorios llamado "Blum Blum Shub". s0 = 290797 sn + 1 = sn × sn (modulo 50515093) tn = sn (modulo 500) Para crear cada segmento de línea, usamos cuatro números consecutivos tn. Es decir, el primer segmento de línea viene dado por: (t1, t2) a (t3, t4) Los primeros cuatro números calculados de acuerdo con el generador anterior deberían ser: 27, 144, 12 y 232. El primer segmento sería así ( 27,144) a (12,232). ¿Cuántos puntos de intersección verdaderos distintos se encuentran entre los 5000 segmentos de línea?
euler165()
debe devolver 2868868.
testString: 'assert.strictEqual(euler165(), 2868868, "euler165()
should return 2868868.");'
```