public class a3{ //Teilersumme einer Zahl / vollkommene Zahlen

	public static void main(String[]a){

		//Menue
		int menue;
		do{
			switch (menue=Mylib.ganzeZahlLesen("Ein kleines Programm zur Zahlentheorie\n======================================"
				+"\n1: Teilersumme einer Zahl berechnen"
				+"\n2: Vollkommene Zahlen finden"
				+"\n3: Programm beenden"
				+"\n\nIhre Wahl?",1,3)){
					case 1: teilerSummeBerechnen(); break;
					case 2: vollkommeneZahlFinden(); break;
					case 3: break;
				}
			}
			while (menue<3 ||!Mylib.jaNein("\nWirklich beenden?"));

}
	public static void teilerSummeBerechnen(){
			int x=Mylib.ganzeZahlLesen("\nBitte geben Sie eine natuerliche Zahl zur Teilersummen-Ermittlung ein");
			System.out.println(" ");
			int ergebnis=teilerSumme(x);
			System.out.println("Teilersumme = "+ergebnis+"\n");
			System.out.println(" ");
	}
	
	public static void vollkommeneZahlFinden(){
			int grenze=Mylib.ganzeZahlLesen("\nBitte Obergrenze angeben, bis zu der gesucht werden soll");
			for (int j=1;j<grenze;j++) {
				if (teilerSumme(j)==j) System.out.println(""+j+" ist eine vollkommene Zahl");
			}
			System.out.println(" ");
			System.out.println("fertig!");
			System.out.println(" ");
			
	}

	static int teilerSumme(int n){
		int summe=0;
		if (n<=0) System.out.println("Fehler: Null oder eine negative Zahl zur berechnung verwendet!\n");
		else {
			for (int i=n-1;i>0;i--) if ((n%i)==0) summe=summe+i;
		}
		return summe;
	}

}