File: contfrac.gp

package info (click to toggle)
pari 2.17.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 24,508 kB
  • sloc: ansic: 281,184; sh: 861; perl: 420; yacc: 214; makefile: 162; f90: 88
file content (13 lines) | stat: -rw-r--r-- 247 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
period(D) =
{ my(u,v,j,r,s);

  if (type(D) != "t_INT" || D < 2, return(-1));
  u = sqrtint(D, &v); \\ v = D-u^2;
  if (!v, return(0));
  s = v;
  r = u; j = 0;
  until (u == r && v == s,
    u = (r+u)\v * v - u;
    v = (D-u^2)\v; j++;
  ); j;
}