int main(void)
{
    unsigned int count, i, j, max, maxval, start_tics, limit=1000000;
    char msg[200];

    start_tics = clock();
    max=0;                     /* init max length found   */
    for (i=2; i<limit; i++)
    {
        count = 0;
        j = i;
        while (j != 1)
        {
            j = next_coll(j);    /* turn the crank          */
            count ++;            /* count an iteration      */
        }
        if (count > max)
        {
            max = count;        /* save the new max length  */
            maxval = i;         /*  and the value that led  */
        }                   /*  to it                   */
    }

    sprintf(msg, "Longest chain was %d in length starting with %d\n", max, maxval);
    logcputime(start_tics, msg);
    exit(0);
}
Example #2
0
adjacency_matrix::row_then_coll_iterator::iter_state_t&
adjacency_matrix::row_then_coll_iterator::next(size_t size, size_t width, iter_state_t& i) {
      if (row(i) < width) {                        
            next_row(i);                 
      }
      if (row(i) == width && coll(i) < width) {
            next_coll(i);                                          
            if (coll(i) < width) {
                  i = iter_state_t(0, coll(i));                     
            }                        
      }     
      
      if ((row(i) == width) && (coll(i) == width)) {
            i = iter_state_t(size, size);   
      }
      
      return i;
}