mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			456 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			456 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| var calc_root(m) {
 | |
|   int base = 1;
 | |
|   repeat(70) { base *= 10; }
 | |
|   var (a, b, c) = (1, 0, - m);
 | |
|   var (p1, q1, p2, q2) = (1, 0, 0, 1);
 | |
|   do {
 | |
|     int k = -1;
 | |
|     var (a1, b1, c1) = (0, 0, 0);
 | |
|     do {
 | |
|       k += 1;
 | |
|       (a1, b1, c1) = (a, b, c);
 | |
|       c += b;
 | |
|       c += b += a;
 | |
|     } until (c > 0);
 | |
|     (a, b, c) = (- c1, - b1, - a1);
 | |
|     (p1, q1) = (k * p1 + q1, p1);
 | |
|     (p2, q2) = (k * p2 + q2, p2);
 | |
|   } until (p1 > base);
 | |
|   return (p1, q1, p2, q2);
 | |
| }
 |