FUNCTION :  qseries[findcong] - Find linear congruence 

CALLING SEQUENCE :  findcong(QS,T)  
                    findcong(QS,T,LM)
                    findcong(QS,T,LM,XSET)
    
PARAMETERS :   QS   - q-series
               T,LM - positive integers 
               XSET - set of positive integers

GLOBAL VARIABLES : xprint
   
SYNOPSIS :   
   
 findcong(QS,T) searches for linear congruences.                   
 If QS = sum c[n]*q^n (where n<=T) then
 it returns triples  [B,A,R] where
 c[A*n + B] == 0 mod R  (at least up to n=LM)
 and R is not in XSET.
 The default LM=trunc(sqrt(T)).
 Also R is a prime power.

 The global var xprint is the usual.

CHANGES :
  1.3: o fixed major bug. The old verfsion was missing some congruences.

EXAMPLES :   

>  with(qseries):

>  P:=series(1/etaq(q,1,1001),q,1001):

>  findcong(P,1000);
                                   [4, 5, 5]

                                   [5, 7, 7]

                                  [6, 11, 11]

                                  [24, 25, 25]

               {[5, 7, 7], [4, 5, 5], [24, 25, 25], [6, 11, 11]}

DISCUSSION:

findcong found the Ramanujan partition congruences

p(5n+4) == 0 mod 5
p(7n+5) == 0 mod 7
p(11n+6) == 0 mod 11
p(25n+24) == 0 mod 25


SEE ALSO :  findlincombomodp