Subversion Repositories distributed

Rev

Rev 14 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/* Berechnet a[0]..a[n-1], also bis einschliesslich M_5(n) .                                    */
/* Es wird vorausgesetzt, dass das Feld a auf einen genuegend grossen Platz fuer n Bytes zeigt! */
void BerechneUnsterblich (unsigned char *a, int n)
{
  int r,s,u,m,k;
  if (n <= 0) return;
  a[0] = 5;
  if (n <= 1) return;
  a[1] = 2;
  r = 2;
  u = 1;
  while (u < n-1)
  {
    r = (r-a[u])/10 + a[u];
    s = 0;
    for (m = 1, k = u; m < k; m++,k--) s += a[m]*a[k];
    r += 2*s;
    if (m == k) r += a[m]*a[m];
    a[++u] = r % 10;
  }
}

"5 Mal editiert"