import static  java.lang.System.*;   // cf.  Java 5.0

/**
  * Classe 'nbParfait_':  pour envoyer des messages à la classe 'nbParfait'
  * @author   (c) ~/2A env.  H. Nguyen-Phu
  * @since    1.0   2005.10.18
  * @version  1.2   2006.11.15  22h00
  * @see      nbParfait
  */

public class   nbParfait_   {

/**
  * Méthode principale publique  de classe 'main(...)'.
  * Elle utilise la classe 'es' pour accéder aux méthodes de classe:
  *    attente() - affichage de l'heure de fin d'exécution,
  *    LireCh()  - lecture récursive d'une chaîne de caractères,
  *    LireCh(guide) - idem mais un message de guide en lecture.
  *
  * @param args Tableau de chaînes pour ligne de commande éventuelle
  */

    public static void main(String[] args)   {

	long max, min;
// La méthode  d'instance  'printf'  n'est définie qu' à partir de Java 5.0  
// (cf.  'printf'  du  langage   C  pour plus détails ... )
	out.printf("nbParfait_  :  Test de la classe 'nbParfait' (entiers longs)\n");
	out.printf("               (c) ~/2A env. 22h00  15.11.2006\n");
	out.printf("Usage       :  java  nbParfait_  unSeuilMinPositif  unSeuilMaxPositif   \n");

	if (args.length == 2 ) { // Traitement de la lecture via la ligne de commande:
		min =  Long.parseLong(args[0]);
		max =  Long.parseLong(args[1]);
	}
	else  {

		min  = Long.parseLong(es.LireCh("Donner le seuil minimal de la recherche   :   "));  
		max  = Long.parseLong(es.LireCh("Donner le seuil maximal de la recherche   :   "));  
/*
		min =   1;
		max = 999;
*/
	}
// Mise en forme des seuils  t.q.  min < max et qu'ils sont strictement positifs
	if ( min < 1 )
		min = 1;
	if ( max < min )
		max = min + 999;

	out.printf("Les seuils  retenus (ou  lus) sont: seuilMin= %d  et seuilMax= %d.\n\n", min, max);

// Création d'une instance (i.e. un objet test) de la classe  'nbParfait' :
	nbParfait   unObj  =   new  nbParfait(min, max);   	

// Appel de la méthode de calcul des nombres parfaits  de 'min'  jusqu'à  'max':
	unObj.rechParfait( ); 	

	es.attente( );
  }
}
