Java :: Aufgabe #302

1 Lösung Lösung öffentlich

Teilersumme natürlicher Zahlen

Anfänger - Java von JKooP - 04.10.2020 um 11:49 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist zu prüfen, ob es sich bei einer natürlichen Zahl um eine defiziente,
vollkommende oder abundante Zahl handelt.
Betrachtet wird die Summe aller Teiler ohne die Zahl selbst.

Beispiel Zahl 80:

1 + 2 + 4 + 5 + 8 + 10 + 20 + 40 = 106 --> abundant, da

Summe kleiner als Zahl --> defizient
Summe gleich Zahl --> vollkommen
Summe größer als Zahl --> abundant

Viel Spaß

Lösungen:

vote_ok
von vinuel (230 Punkte) - 25.10.2020 um 19:53 Uhr
Quellcode ausblenden Java-Code
package a302;

import java.awt.List;
import java.util.Scanner;

public class main {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in); // input scanner
		System.out.println("Bitte geben sie die zu überprüfende Nummer ein: ");
		int number = input.nextInt();
		int sum = addListElements(getTeiler(number));
		System.out.println("sum: " + sum);
		if(sum < number) {
			System.out.println("defizient");
		} else if(sum == number) {
			System.out.println("vollkomme");
		} else {
			System.out.println("abundant");
		}
		input.close();
	}
	
	private static List getTeiler(int number) {
		List results = new List();
		for(int i = 1; i < number; i++) {
			if(number%i == 0)
				results.add(Integer.toString(i));
		}
		return results;		
	}
	
	public static int addListElements(List list) {
		int sum = 0;
		for(int i = 0; i < list.getItemCount(); i++) {
			sum += Integer.parseInt(list.getItem(i));
		}
		return sum;
	}

}
1813578

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.