#include "bigloop.h"
extern int  IDENT;
extern int  PORT;
extern char *SERVER;
extern ticket current;
//mark=parfait
//kwds=cpt
int parfait( ullong z , ullong *cpt)
{ ullong d;
  ullong sum = 1;
  for( d = 2; d*d <=z; d++ )
    if ( z % d == 0 ) {
       *cpt = *cpt + 1; //work factor contribution
	sum+= d;
	if ( d*d != z ) s+= z/d;
	if ( sum > z ) return 0;
    }
  return ( sum == z );
}
//mark=main
//kwds=registration, newjob, sendvalue, sendend
int main( int argc, char*argv[])
{ ullong deb, fin, wf = 0;
  if ( ! bigloopargs( argc, argv ) )
      exit(1);   
  initbigloop();
  if ( registration( ) )
    while ( newjob( ) ){
      wf = 0;
      for( s = current.deb ; s < current.fin; s++ ) 
        if ( parfait( s, &wf) ) sendvalue( s );
      sendend( wf );
    }
  return 0;
}
