Рассмотрим три сегмента L1, L2 и L3: L1: (27, 44) - (12, 32) L2: (46, 53) - (17, 62) L3: (46, 70) - (22, 40) Можно проверить, что сегменты линии L2 и L3 имеют истинную точку пересечения. Заметим, что, поскольку одна из конечных точек L3: (22,40) лежит на L1, это не считается истинной точкой пересечения. L1 и L2 не имеют общей точки. Таким образом, среди трех сегментов линии мы находим одну истинную точку пересечения. Теперь сделаем то же самое для 5000 сегментов линии. С этой целью мы генерируем 20000 номеров, используя так называемый генератор псевдослучайных чисел Blum Blum Shub. s0 = 290797 sn + 1 = sn × sn (по модулю 50515093) tn = sn (по модулю 500). Чтобы создать каждый сегмент линии, мы используем четыре последовательных числа tn. То есть первый сегмент линии задается следующим образом: (t1, t2) - (t3, t4) Первые четыре числа, вычисленные в соответствии с указанным выше генератором, должны быть: 27, 144, 12 и 232. Таким образом, первый сегмент будет ( 27, 144) - (12 232). Сколько четких точек пересечения найдено среди 5000 сегментов линии?
euler165()
должен возвращать 2868868.
testString: 'assert.strictEqual(euler165(), 2868868, "euler165()
should return 2868868.");'
```