The C-finite Ansatz
  While it is trivial to multiply two C-finite sequences (just like integers), it is not quite so trivial to "factorize" them, or to decide whether they are "prime". The former is plain linear algebra, while the latter is heavy-duty non-linear algebra, getting hairy systems of algebraic equations that can be solved, in principle, using Gr\"obner bases and the Buchberger algorithm, but, alas, sooner or later it becomes too hard even for the fastest and largest computers.   The main technical novely of this article is a fast "algorithm" (it cheats and uses floating-point arithmetic, please don't tell anyone!) for deciding whether a given C-finite sequence can be written as a product of C-finite sequences of lower order.   This article accompanies the Maple package Cfinite available from http://www.math.rutgers.edu/~zeilberg/tokhniot/Cfinite . 
Doron Zeilberger
math.CO