/*****************************************************************************/
/*									     */
/*  COMPUTE PRIMES							     */
/*  11/04/15 (dkc)							     */
/*									     */
/*****************************************************************************/
#include <math.h>
unsigned int primed(unsigned int *out, unsigned int tsize,
		    unsigned int *table,unsigned int limit) {
unsigned int d;
unsigned int i,j,k,l,flag,count;
count=tsize;
for (i=0; i<tsize; i++)
   out[i]=table[i];
j=table[tsize-1]+1;
/********************/
/*  loop through d  */
/********************/
for (d=j; d<=limit; d++) {
   if(d==(d/2)*2) continue;
   if(d==(d/3)*3) continue;
   if(d==(d/5)*5) continue;
   if(d==(d/7)*7) continue;
   if(d==(d/11)*11) continue;
/************************************************/
/*  look for prime factors using look-up table	*/
/************************************************/
   l=(unsigned int)(10.0+sqrt((double)d));
   k=0;
   if (l>table[tsize-1])
      return(0);
   else {
      for (i=0; i<tsize; i++) {
	 if (table[i]<=l)
	    k=i;
	 else
	    break;
	 }
      }
   flag=1;
   l=k;
   for (i=0; i<=l; i++) {
      k=table[i];
      if ((d/k)*k==d) {
	 flag=0;
	 break;
	 }
      }
   if (flag==1)
      out[count]=d;
   count=count+flag;
   }
return(count);
}