Ton
1var calc_root(m) {
2int base = 1;
3repeat(70) { base *= 10; }
4var (a, b, c) = (1, 0, - m);
5var (p1, q1, p2, q2) = (1, 0, 0, 1);
6do {
7int k = -1;
8var (a1, b1, c1) = (0, 0, 0);
9do {
10k += 1;
11(a1, b1, c1) = (a, b, c);
12c += b;
13c += b += a;
14} until (c > 0);
15(a, b, c) = (- c1, - b1, - a1);
16(p1, q1) = (k * p1 + q1, p1);
17(p2, q2) = (k * p2 + q2, p2);
18} until (p1 > base);
19return (p1, q1, p2, q2);
20}
21