Back to Freecodecamp

Problem 186: Connectedness of a network

curriculum/challenges/english/blocks/project-euler-problems-101-to-200/5900f4281000cf542c50ff39.md

latest1.5 KB
Original Source

--description--

Here are the records from a busy telephone system with one million users:

RecNrCallerCalled
1200007100053
2600183500439
3600863701497
.........

The telephone number of the caller and the called number in record $n$ are $Caller(n) = S_{2n - 1}$ and $Called(n) = S_{2n}$ where ${S}_{1,2,3,\ldots}$ come from the "Lagged Fibonacci Generator":

For $1 ≤ k ≤ 55$, $S_k = [100003 - 200003k + 300007{k}^3]\;(\text{modulo}\;1000000)$

For $56 ≤ k$, $S_k = [S_{k - 24} + S_{k - 55}]\;(\text{modulo}\;1000000)$

If $Caller(n) = Called(n)$ then the user is assumed to have misdialled and the call fails; otherwise the call is successful.

From the start of the records, we say that any pair of users $X$ and $Y$ are friends if $X$ calls $Y$ or vice-versa. Similarly, $X$ is a friend of a friend of $Z$ if $X$ is a friend of $Y$ and $Y$ is a friend of $Z$; and so on for longer chains.

The Prime Minister's phone number is 524287. After how many successful calls, not counting misdials, will 99% of the users (including the PM) be a friend, or a friend of a friend etc., of the Prime Minister?

--hints--

connectednessOfANetwork() should return 2325629.

js
assert.strictEqual(connectednessOfANetwork(), 2325629);

--seed--

--seed-contents--

js
function connectednessOfANetwork() {

  return true;
}

connectednessOfANetwork();

--solutions--

js
// solution required