Java :: Aufgabe #1
28 Lösungen

Für eine ganze Zahl alle Teiler ausgeben
Anfänger - Java
von Gustl
- 06.08.2012 um 23:20 Uhr
Schreiben Sie ein Programm, das dem Benutzer auffordert eine ganze Zahl einzugeben. Danach sollen alle möglichen Teiler dieser Zahl ausgegeben werden.
Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung erscheinen und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben.
Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung erscheinen und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben.
Lösungen:

import javax.swing.JOptionPane; public class main { private int zahl = 0; private boolean start = true; private boolean benutzerDialog() { String benutzerEingabe = JOptionPane.showInputDialog("Bitte Zahl eingeben"); try { zahl = Integer.parseInt (benutzerEingabe); return true; } catch (Exception E){ JOptionPane.showMessageDialog( null, "Nur Ganzzahlen werden akzeptiert!" ); return false; } } private String gemeinsameTeiler() { String ergebnis = "T"+zahl+" {"; for(int i=1;i<zahl;i++) { if((zahl%i) == 0) { ergebnis += i+", "; } } ergebnis += " "+zahl+"}"; return ergebnis; } public static void main( String[] args ) { main m = new main(); while(m.start) { if(m.benutzerDialog()) { JOptionPane.showMessageDialog(null, m.gemeinsameTeiler()); m.start = false; } } } }

import java.util.Scanner; public class Teiler { public static void main(String[] args) { Scanner s = new Scanner(System.in); String eingabe = "", ausgabe = ""; boolean ganzeZahl = false; while(!ganzeZahl){ System.out.print("Eine ganze Zahl eingeben: "); eingabe = s.next(); if(!eingabe.matches("[0-9]+")){ System.out.println("Nur ganze Zahlen eingeben!"); }else ganzeZahl = true; } int zahl = Integer.parseInt(eingabe); ausgabe = "Die Teiler der Zahl "+eingabe+" sind:{" ; for(int i=1; i<zahl+1;i++){ if(zahl%i==0){ ausgabe = ausgabe +" "+ String.valueOf(i); } } ausgabe = ausgabe + " }"; System.out.println(ausgabe); } }
Kleine Anmerkung: Ist jetzt nicht ganz wie gefordert (da keine eigene Fehlermeldung bei Falscheingabe zurück gegeben wird und der User das Programm dann neu starten müsste). Liegt daran, dass ich die Parameterübergabe per CMD mit diesem Programm erstmalig verwenden wollte. Vielleicht kommt die Tage noch eine Version mit Mini-GUI und den genauen Anforderungen.
Ansonsten, hier mein Ansatz:
Java-Code
Konstruktor könnte man natürlich weglassen
Ansonsten, hier mein Ansatz:

public class AlleTeiler { private int zahl; String s = "Teiler:"; public static void main(String[] args) { String param = args[0]; int x = Integer.parseInt(param); Integer x2 = new Integer(param); AlleTeiler test = new AlleTeiler(x2); } public AlleTeiler(int x) { zahl = x; teilerFinden(); System.out.println(s); } public void teilerFinden() { for(int i = 1; i <= zahl/2; i++) { if(zahl%i == 0) { Integer intNeu = new Integer(i); s = s + " " + intNeu.toString(); } } } }
Konstruktor könnte man natürlich weglassen
Ich habe eine seperate Methode vereinbart, da es sich nicht empfiehlt (und daher auch nicht möglich ist) die main-Methode rekursiv, bzw. generell manuell aufzurufen. D.h. main ruft nur noch die Methode factor() auf.
Java-Code

//©2012 by Julius J. Hoffmann //written with Eclipse import java.util.*; //Importiert Scanner zum Einlesen der Eingabe public class Teiler { //Die "ausführende Klasse" static void factor() //seperate Methode, dei für die Rekursion benötigt wird { System.out.print("Bitte ganzzahlige Zahl eingeben: "); //Ausgabe des Strings Scanner s = new Scanner(System.in); //legt das Scanner-Objekt an int x=0; //Initialisieren der Variablen x (muss seperat erfolgen, da JAVA denkt, dass sie, //wg. der try-catch Anweisung, später nicht verfügbar sein könnte.) try { //try{} -> "Probiert" den nachfolgenden Code auszuführen x = s.nextInt(); //Definition von x } catch (Exception e) {System.out.print("FEHLER!"); //wenn der vorherige Code fehlgeschlagen ist factor();} //rekursiver AUfruf der Methode factor() for (int i=1; i<=x; i++) //Initiieren einer for-Schleife, jede Zahl bis x wird getestet { //x ist hier def. definiert, da catch, die Meth. solange aufruft, bis x definiert ist if(x%i == 0) System.out.println(i); //Testabfrage, ob i ein Teiler von x ist, wenn ja: Ausgabe i.d. Konsole } } //Ende factor-Methode public static void main(String[] args) //Main-Methode { factor(); //Aufruf der Methode factor() } //Ende Main-Methode } //Ende Klasse

import java.io.*; public class all_divisors { public static void main(String args[])throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); byte error = 0; int number = 0; int[] divisor = null; do{ try{ System.out.println("Please enter a number: "); number = Integer.parseInt(in.readLine()); divisor = new int[number]; }catch(Exception e){ System.out.println("No floating-point number"); error = 1; } }while(error==1); for(int i=1; i<number; i++){ if((number%i)==0){ divisor[i]=i; } } for(int i=0; i<divisor.length;i++){ if(divisor[i]!=0){ System.out.println(i+" is a divisor of: "+number); } } } }
Output for 12564

1 is a divisor of: 12564 2 is a divisor of: 12564 3 is a divisor of: 12564 4 is a divisor of: 12564 6 is a divisor of: 12564 9 is a divisor of: 12564 12 is a divisor of: 12564 18 is a divisor of: 12564 36 is a divisor of: 12564 349 is a divisor of: 12564 698 is a divisor of: 12564 1047 is a divisor of: 12564 1396 is a divisor of: 12564 2094 is a divisor of: 12564 3141 is a divisor of: 12564 4188 is a divisor of: 12564 6282 is a divisor of: 12564
Output for 11515.6

No floating-point number

public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("Teiler von: "); int eingegebeneZahl = s.nextInt(); int alleTeiler[] = new int[eingegebeneZahl+1]; for (int i = 1; i < eingegebeneZahl+1; i++) { if (eingegebeneZahl % i == 0) { alleTeiler[i] = i; System.out.print(alleTeiler[i]+" "); } } }

import java.util.Scanner; public class Teiler { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double zahl=1, zahlrund=0; while(zahl-zahlrund!=0) { System.out.println("Geben Sie eine ganze Zahl ein, zu der die Teiler ermittelt werden sollen!"); zahl = scan.nextDouble(); if(zahl==0) { System.out.println("0 hat keine Teiler."); } else { zahlrund = Math.round(zahl); if(zahl-zahlrund!=0) { System.out.println("Das ist keine ganze Zahl!\n"); } else { int teiler=1; System.out.println("Die Teiler von "+zahl+" sind: "); while(teiler<=zahl) { if(zahl % teiler == 0) { System.out.print(teiler+" "); } teiler++; } } } } } }

/** * @author ElPapito * @date 07.05.2015 */ import java.util.Scanner; public class AlleTeilerAusgeben { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Bitte ganze Zahl eingeben: "); int input = scanner.nextInt(); scanner.close(); System.out.print("Teiler von " + input + ": "); for(int i = 1; i < input; i++) { if(input % i == 0) { System.out.print(i + ", "); } } System.out.println(input + "."); } }

package mappe; import java.io.IOException; import java.util.Scanner; public class Haupt { String eingabe = ""; int zahl = 0; public String getEingabe() { return eingabe; } public void setEingabe(String eingabe) { this.eingabe = eingabe; } public int getZahl() { return zahl; } public void setZahl(int zahl) { this.zahl = zahl; } private boolean checkInt(String eingabe) { try { Integer.parseInt(eingabe); return true; } catch (NumberFormatException e) { return false; } } public static void main(String[] args) throws IOException { Haupt haupt = new Haupt(); Scanner scan = new Scanner(System.in); // Eingabe wiederholen do { System.out.println("Bitte geben Sie eine Ganzzahl ein: "); haupt.setEingabe(scan.next()); } while (!haupt.checkInt(haupt.getEingabe())); // Geprüfte Eingabe der Ganzzahl zuweisen haupt.setZahl(Integer.valueOf(haupt.getEingabe())); // Ausgabe der geforderten Zahlen for (int i = 1; i < haupt.getZahl(); i++) { if (haupt.getZahl() % i == 0) { System.out.println("Möglicher Teiler von " + haupt.getZahl() + ": " + i); } } System.out.println("Möglicher Teiler von " + haupt.getZahl() + ": " + haupt.getZahl()); } }

import java.util.InputMismatchException; import java.util.Scanner; public class AlleTeiler { public static void main(String[] args) { boolean zahl = true; int eingabe = 0; while (zahl) { Scanner s = new Scanner(System.in); try { eingabe = s.nextInt(); zahl = false; } catch (InputMismatchException e) { System.out.println("Bitte eine Zahl eingeben."); zahl = true; } } for (int i = 1; eingabe >= i; ++i) { if (eingabe % i == 0) { System.out.println(i + " ist Teiler"); } } } }

package java_helloworld; import java.util.ArrayList; import java.util.Scanner; public class AllDivisors { public static void main(String[] args) { ArrayList<Integer> divisors = new ArrayList<Integer>(); int number = 0; boolean error = true; // get the number Scanner sc = new Scanner(System.in); System.out.println("Alle Teiler einer Zahl"); System.out.println("Bitte gib deine Zahl ein: "); while (error) { if (sc.hasNextInt()) number = sc.nextInt(); else { System.out.println("Es muss eine ganze Zahl sein!"); System.out.println("Versuch es noch ein Mal: "); sc.next(); continue; } error = false; } // calculate for (int i = 1; i <= number; i++) { if (number % i == 0) { divisors.add(i); } } // output System.out.print("Alle Teiler der Zahl " + number + " = { "); for (int i = 0; i < divisors.size(); i++) { if (i == divisors.size()-1) System.out.print(divisors.get(i) + " "); else System.out.print(divisors.get(i) + ", "); } System.out.print("}"); sc.close(); } }

import java.util.*; public class Teiler{ int x; Scanner sc; public void main(){ for (int i = 1; i < 2; i++){ try{ System.out.println("Geben sie eine ganze Zahl ein"); sc = new Scanner(System.in); x = sc.nextInt(); rechnen(); } catch (InputMismatchException e) { System.out.println(e.getMessage()); // wenn der Scanner keinen Wert vom Typ Integer bekommt wird die for-Schleife zurückgesetzt i = 0; continue; } } } public void rechnen(){ System.out.print("Die Teiler von " + x + " sind "); System.out.println(""); for (int j = 1; j <= x-1; j++){ if (x % j == 0){ System.out.print ( j + " + " ); // alle Teiler werden in einer Reihe aufgelistet } } System.out.print(x); } }

/* @Author H.K. * @Date 21.02.2016 * * Programmbeschreibung: * Ausgabe aller Teiler für eine ganze Zahl */ import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class mainprogram { public static void main ( String args[] ) throws IOException { int zahl = 0; while (zahl == 0) { System.out.print ( "Eine ganze Zahl eingeben: " ); BufferedReader input = new BufferedReader ( new InputStreamReader ( System.in ) ); String inputString = input.readLine(); if (inputString.matches("-?\\d+?")) { zahl = Integer.parseInt(inputString); } } System.out.println("Teiler der eingegebenen Zahl " +zahl +":"); for (int i = 1; i <= zahl; ++i) { int rest = zahl % i; if ( rest == 0) { System.out.println(i); } } } }
Ausgabe:
Konsolenausgabe:
Eine ganze Zahl eingeben: 5860
Teiler der eingegebenen Zahl 5860:
1
2
4
5
10
20
293
586
1172
1465
2930
5860
Ausgabe wenn keine ganze Zahl eingegeben wird:
Konsolenausgabe:
Eine ganze Zahl eingeben: 4rt
Eine ganze Zahl eingeben: 4.0
Eine ganze Zahl eingeben:

/* * Max F. 07.04.2016 */ import java.util.*; public class Testklasse { public static void main(String[] args) { int Zahl1 = 0; boolean fehler = true; while (fehler) { try { System.out.println("Bitte Zahl eingeben:"); Scanner Eingabe = new Scanner(System.in); //Scanner erzeugen Zahl1 = Eingabe.nextInt(); //Eingabe einer int(!)-Variable zuordnen Eingabe.close();//Erzeugten Scanner wieder Schließen } catch (Exception e) { //Exception abfangen falls Variable nicht als int gespeichert werden kann System.out.println("Nur Eingabe von positiven, ganzen Zahlen möglich"); fehler = true; //Schleife erneut durchlaufen } for (int i = 1; i <= Zahl1; i++) //Schleife von 1 bis eingegebener Zahl { if (Zahl1 % i == 0) //Prüfen ob Modulo der Zahl=0 { System.out.println("Zahl:" + Zahl1 + " durch " + i + " teilbar."); } fehler = false; //While Schleife beenden } } } }
Konsolenausgabe:
Bitte Zahl eingeben:
48
Zahl:48 ist durch 1 teilbar.
Zahl:48 ist durch 2 teilbar.
Zahl:48 ist durch 3 teilbar.
Zahl:48 ist durch 4 teilbar.
Zahl:48 ist durch 6 teilbar.
Zahl:48 ist durch 8 teilbar.
Zahl:48 ist durch 12 teilbar.
Zahl:48 ist durch 16 teilbar.
Zahl:48 ist durch 24 teilbar.
Zahl:48 ist durch 48 teilbar.

import java.util.Scanner; public class Main { public static void main(String[] args) { int zahl=0; zahl=Scanner(); Teiler(zahl); } private static int Scanner() { System.out.println("Bitte geben sie eine ganzahlige Zahl eine"); Scanner sc = new Scanner(System.in); String snumber = sc.next(); try { int inumber = Integer.parseInt(snumber); return inumber; } catch (NumberFormatException e) { System.out.println(snumber+" is not a Number"); Scanner(); } return 0; } private static void Teiler(int zahl) { for(int i =1;i<= zahl;i++) { if(zahl%i == 0) System.out.println(i); } } }

/** * Created by peowpew on 17.01.2017. * * Aufgabe: Schreiben Sie ein Programm, das dem Benutzer auffordert eine ganze Zahl einzugeben. * Danach sollen alle möglichen Teiler dieser Zahl ausgegeben werden. * Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung * erscheinen und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben. * * */ import java.util.InputMismatchException; import java.util.Scanner; public class Teiler { static int ganzeZahl; public static void main (String [] args) { Scanner sc = new Scanner(System.in); try { System.out.print("Zahl: "); ganzeZahl = sc.nextInt(); } catch(InputMismatchException e) { System.out.println("Bitte nur Integer"); } for (int i = 1;i < ganzeZahl;i++) { if ((ganzeZahl % i) == 0){ System.out.println(i); } } } }

// trainyourprogrammer // Aufgabe 1 import java.io.*; public class Teiler { public static void main(String[] args) throws Exception { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader buf = new BufferedReader(isr); int zahl; String eingabe_Zahl; System.out.println(); System.out.print("Bitte eine ganze Zahl eingeben: "); eingabe_Zahl = buf.readLine(); System.out.println(); boolean abbruch = false; while(!abbruch) { try { Integer.parseInt(eingabe_Zahl); abbruch = true; } catch(NumberFormatException e) { System.out.println(eingabe_Zahl + " ist keine ganze Zahl!"); System.out.println(); System.out.print("Bitte geben Sie diesmal eine ganze Zahl ein: "); eingabe_Zahl = buf.readLine(); System.out.println(); } } zahl = Integer.parseInt(eingabe_Zahl); System.out.println(); if(zahl == 0) { System.out.println(" 0 ist nicht teilbar !"); } else { for(int i = 1; i <= zahl; i++) { int teiler = zahl % i; if(teiler == 0) { System.out.println(zahl + " ist Teilbar durch: " + i); } } } System.out.println(); } }

import java.util.Scanner; public class Teiler { public static void main(String[] args) { Input(); } public static void Input(){ System.out.println("Insert your Number:"); Scanner scan = new Scanner(System.in); int in= 0; try { in = scan.nextInt(); }catch (Exception e) { System.out.print("ERROR!\n"); Input();} divider(in); }public static void divider(int n){ System.out.println("Your Dividers are:"); for ( int i = 1;i<=n;i++){ if (n%i==0){ System.out.println(i); } } } }

import java.util.InputMismatchException; import java.util.Scanner; public class main { public static void main(String[] args) { final Scanner in = new Scanner(System.in); int number = 0; boolean repeat = false; do { try { System.out.print("Geben Sie bitte eine ganze Zahl ein: "); number = in.nextInt(); repeat = false; } catch (InputMismatchException e) { in.nextLine(); repeat = true; System.out.println("Sie haben leider keine ganze Zahl eingegeben. Bitte versuchen Sie es noch einmal."); } } while(repeat); for(int i = 1; i <= number; i++) { if(number % i == 0) { System.out.print(i); if(i < number) { System.out.print(", "); } else { System.out.print(" "); } } } System.out.print("sind Teiler von " + number + "."); } }

import java.util.*; public class App { public static void main(String[] args) { /* Schreiben Sie ein Programm, das dem Benutzer auffordert eine ganze Zahl einzugeben. * Danach sollen alle möglichen Teiler dieser Zahl ausgegeben werden. * Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung erscheinen und * der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben. */ System.out.println("Willkommen beim Ganzzahlteiler :)"); berechnung(ausgabe()); } static int ausgabe() { Scanner einlesen = new Scanner(System.in); int eingabe = 0; try { System.out.print("Bitte geben Sie eine ganze Zahl ein:"); eingabe = einlesen.nextInt(); }catch (Exception e) { System.out.println("Bitte nur Ganzzahlen eingeben!"); eingabe = ausgabe(); } return eingabe; } static void berechnung(int usrEingabe) { int[] divisor = null; divisor = new int[usrEingabe]; for(int i=1; i<=usrEingabe; i++) { if((usrEingabe%i) == 0) { int j = i; j--; divisor[j] = i; } } for(int i=0; i<divisor.length ;i++) { int x = divisor[i]; if(x!=0) { System.out.println(x +" ist ein Teiler von: "+ usrEingabe); } } } }

import java.util.*; public class TeilerGanzerZahlen { public static void main(String[] args) { int zahl = Input(); divider(zahl); } public static int Input() { System.out.println("Insert number: "); Scanner sc = new Scanner(System.in); int input= sc.nextInt(); try { return input; } catch (InputMismatchException e) { System.out.println("Error!"); Input(); } return 0; } public static void divider(int zahl) { System.out.println("Your dividers are: "); for (int i = 1; i <=zahl; i++) { if(zahl%i==0) { System.out.print(i+" "); } } } }

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { // Schreiben Sie ein Programm, das dem Benutzer // auffordert eine ganze Zahl einzugeben. // Danach sollen alle möglichen Teiler dieser Zahl ausgegeben werden. // Wenn keine ganze Zahl (Integer) eingegeben // wurde soll eine Fehlermeldung erscheinen // und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben. public static void main(String[] args) { int number=readingNumber(); List<Integer> dividers=findDividers(number); printDividers(number, dividers); } private static int readingNumber(){ int number; Scanner sc =new Scanner(System.in); while(true){ System.out.print("Enter an integer! Your number:"); String input=sc.next(); if(input.matches("[0-9]+")){ number=Integer.parseInt(input); break; } else{ System.out.println("You entered not an integer!\n"); } } return number; } private static List<Integer> findDividers(int number){ List<Integer> dividers=new ArrayList<>(); for(int i=1; i<=number; i++){ if(number%i==0){ dividers.add(i); } } return dividers; } private static void printDividers(int number, List<Integer> l){ String ausgabe = "dividers of "+number+" :"; for (int i: l) { ausgabe+=" "+i; } System.out.println(ausgabe); } }

import java.util.Scanner; public class Main { public static void main(String argsp[]) { String userInput; Scanner eingabe = new Scanner(System.in); System.out.println("Bitte eine ganze Zahl eingeben:"); do { userInput = String.valueOf(eingabe.next()); if(tryParseInt(userInput)) { int userNumber = Integer.parseInt(userInput); for(int teiler = 1; teiler <= userNumber; teiler ++) { if(userNumber % teiler == 0) { System.out.println(teiler); } } } else { System.out.println("Dies ist keine ganze Zahl, bitte eine ganze Zahl eingeben:"); } } while(!tryParseInt(userInput)); } static boolean tryParseInt(String userInput) { try { Integer.parseInt(userInput); return true; } catch (NumberFormatException e) { return false; } } }
Fehlermeldung:
Dies ist keine ganze Zahl, bitte eine ganze Zahl eingeben:

import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Teiler { public static void main(String[] args) { TeilerAusgeben teilerausgeben = new TeilerAusgeben("Alle Teiler ausgeben"); } } class TeilerAusgeben extends JFrame implements ActionListener { JLabel lbl = new JLabel("Geben Sie eine ganze Zahl ein, und dann drücken Sie die OK Taste!"); JTextField eingabe = new JTextField(10); JButton enter = new JButton("OK"); JTextArea ergebnis = new JTextArea(10, 26); JPanel textPanel = new JPanel(); JPanel eingabePanel = new JPanel(); JPanel ergebnisPanel = new JPanel(); TeilerAusgeben(String titel) { super(titel); setVisible(true); setSize(450, 300); setLocationRelativeTo(null); setLayout(new FlowLayout()); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); eingabe.setHorizontalAlignment(JTextField.RIGHT); enter.addActionListener(this); ergebnis.setLineWrap(true); ergebnis.setWrapStyleWord(true); ergebnisPanel.setPreferredSize(new java.awt.Dimension(300, 200)); ergebnis.setEditable(false); textPanel.add(lbl); eingabePanel.add(eingabe); eingabePanel.add(enter); ergebnisPanel.add(ergebnis); add(textPanel); add(eingabePanel); add(ergebnisPanel); } public void teilerFinden(String eingabeString) { try { int zahl = Integer.parseInt(eingabeString); StringBuilder sbTeiler = new StringBuilder(); for (int i = 2; i <= (zahl / 2); i++) { if (zahl % i == 0) { if (sbTeiler.length() > 0) { sbTeiler.append(", "); } sbTeiler.append(Integer.toString(i)); } } if (sbTeiler.length() > 0) { sbTeiler.append(", "); } sbTeiler.append(Integer.toString(zahl)); ergebnis.setText("Die Teiler sind: " + sbTeiler.toString()); } catch (NumberFormatException e) { ergebnis.setText("Bitte ganze Zahl eingeben!"); } } @Override public void actionPerformed(ActionEvent evt) { teilerFinden(eingabe.getText()); } }

import java.util.Scanner; /** * Programm zur Berechnung von Teilern einer ganzen Zahl. * Als Eingabe wird ein Integer-Wert erwartet, dessen Teiler ermittelt werden. * Bei nicht Integer-Eingaben erscheint der Dialog der Zahleneingabe erneut! * @author HR_SS * */ public class TeilerScanner { public static void main(String[] args) { boolean ende = false; while(!ende) { try { System.out.println("Geben Sie eine ganze Zahl ein..."); Scanner eingabe = new Scanner(System.in); int wert = eingabe.nextInt(); eingabe.close(); System.out.println("Eingegebene Zahl: " + wert); System.out.println("Teiler von " + wert + " sind:"); for(int i = 1; i <= wert; i++) { if(wert % i == 0) { System.out.print(i + " "); } } ende = true; }catch (Exception ex) { System.out.println(ex.toString()); ende = false; } } } }

import java.util.InputMismatchException; public class DividerE { public static void main(String[] args) { // int input; System.out.println("Bitte gebe eine Zahl ein"); try { int input = new java.util.Scanner( System.in).nextInt(); for (int i = 1; i <= input; i++) { if (input % i == 0) { System.out.println(i); } } } catch (InputMismatchException e) { System.err.println("Das war keine Zahl");; } } }

import java.util.Scanner; public class FuerEineGanzeZahlAlleTeilerAusgeben { public static void main(String[] args) { System.out.println("Bitte gib eine Zahl ein:"); Scanner s = new Scanner(System.in); Boolean istGanzeZahl = false; while (!istGanzeZahl) { String ganzZahl = s.next(); if (ganzZahl.matches("[0-9]+")) { istGanzeZahl = true; int zahl = Integer.parseInt(ganzZahl); System.out.println("Die Teiler von " + ganzZahl + " sind:"); for (int i = 1; i < zahl+1; i++) { if (zahl%i == 0) { System.out.println(i); } } } else { System.out.println("Nur ganze Zahlen werden akzeptiert!"); } } } }

/** * Returns all factors of an entered integer. * Returns an error message when the input is not an integer and asks for an integer again. */ import java.util.Scanner; class Factors { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int input = 0; boolean inputType = false; while (!inputType) { System.out.println("Please enter an integer:"); try { input = scan.nextInt(); inputType = true; } catch (Exception e) { System.out.println("Error: Input is not an integer!"); scan.next(); } } scan.close(); String output = input + " can be divided by: "; for (int i = 1; i < input; i++) { if (input % i == 0) { output += i + ", "; } } output += input; System.out.println(output); } }
Konsolenausgabe:
Please enter an integer:
safsad
Error: Input is not an integer!
Please enter an integer:
435.0
Error: Input is not an integer!
Please enter an integer:
435
435 can be divided by: 1, 3, 5, 15, 29, 87, 145, 435