User:PrimeHunter/Table of prime factors (program)
From Wikipedia, the free encyclopedia
The below program was made to generate tables for Table of prime factors. See Talk:Table of prime factors.
/* PARI/GP program by PrimeHunter */
/* Generates tables for http://en.wikipedia.org/wiki/Table_of_prime_factors */
largelinked = Set([440,449,451,464,465,475,485,486,487,496,501,509,512,\
519,525,529,554,555,556,561,580,585,586,593,603,610,611,613,616,619,\
629,641,666,702,707,715,717,720,727,747,765,777,786,790,874,880,881,\
883,911,985,987,992,999])
islinked(n) = (n<=436) || (n<=1000 && n%100==0) || setsearch(largelinked,n)
/* islinked(n) is true if "n (number)" (n<=1000) has a Wikipedia article or redirect */
maketable(rows,columns,start,o) = {
local(r,c,n,f,i);
write(o,"{| class=\"wikitable\"");
write(o,"|+ ",start," − ",start+rows*columns-1);
for(r=1,rows,
write(o,"|-");
for(c=1,columns,
n = start + r-1 + rows*(c-1);
if (c>1,write1(o,"|"));
write1(o,"|");
if (islinked(n), write1(o,"[[",n," (number)|",n,"]]"), write1(o,n) );
write1(o,"||");
if (n==1,write1(o,"unit"));
f=factor(n);
if (isprime(n),write1(o,"'''"));
for(i=1,#f[,1],
if (i>1,write1(o,"·"));
write1(o,f[i,1]);
if (f[i,2]>1,write1(o,"<sup>",f[i,2],"</sup>"));
);
if (isprime(n),write1(o,"'''"));
);
write(o,"");
);
write(o,"|}");
}
makemultitable(rows,columns,start,o) = {
local(c);
write(o,"{| border=\"0\" cellpadding=\"0\" cellspacing=\"0\"");
/*write(o,"|+ '''Prime factorization of ",start," to ",start+rows*columns-1,"'''");*/
for(c=1,columns,write(o,"|");maketable(rows,1,start+(c-1)*rows,o));
write(o,"|}");
}
makemultitables(tables,rows,columns,start,o) = {
local(t);
for(t=1,tables,
write(o,"== ",start+(t-1)*rows*columns, " to ",start+t*rows*columns-1," ==");
makemultitable(rows,columns,start+(t-1)*rows*columns,o);
write(o,"");
);
}
makemultitables(10,20,5,1,"factortables.txt");
/* Makes 10 tables, each with 5 20-row tables side by side.
First table starts with 1. Result in wiki-table format written to factortables.txt */

