We use the following format to exchange aliquot sequences. - the first line of the file contains the starting value - the second line contains the small prime bound B. All prime factors less than B are not printed. - the following lines contain all factors (except the largest one) of each term, each factor appearing only once. - each line can end with a comment starting with # up to the end of the line As an example, here is the file describing the sequence 88 with B=2: ------------------------------------------------------------------------------ 88 2 2 2 2 2 3 1 ------------------------------------------------------------------------------ Running the 'aliq' program on this file (say 88.fmt) gives as output: % aliq < 88.fmt 88:0 = 88 = 2^3*11 88:1 = 92 = 2^2*23 88:2 = 76 = 2^2*19 88:3 = 64 = 2^6 88:4 = 63 = 3^2*7 88:5 = 41 = 41 largest term has 2 digits at index 1 As a larger example, the formatted file 276.fmt for the sequence 276 up to index 1119 with B=2 uses only 31288 bytes (and 14345 bytes when compressed with gzip), while the plain file obtained by % gunzip -c < 276.fmt.gz | aliq requires more than 150000 bytes (69657 when compressed). How to compile the aliq program. 1) get and install GMP on your computer (see http://www.matematik.su.se/~tege/gmp) 2) compile the program using % cc -O -L. aliq.c -o aliq -lgmp -lm where the libgmp.a library is supposed to be in the current directory, as well as the gmp.h header file. If you want to generate Magma output, just add -DMAGMA after 'cc', and you'll get: % aliq < 88.fmt F := [ /* 88 0 ( 2 ) */ [ <2, 3>, <11, 1> ] /* 88 1 ( 2 ) */, [ <2, 2>, <23, 1> ] /* 88 2 ( 2 ) */, [ <2, 2>, <19, 1> ] /* 88 3 ( 2 ) */, [ <2, 6> ] /* 88 4 ( 2 ) */, [ <3, 2>, <7, 1> ] /* 88 5 ( 2 ) */, [ <41, 1> ] ]; /* 88 5 ( 1 ) 1 largest term has 2 digits at index 1 */