Java :: Aufgabe #1

28 Lösungen Lösungen öffentlich

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.

Lösungen:

vote_ok
von ne0n (330 Punkte) - 11.08.2012 um 00:21 Uhr
Quellcode ausblenden Java-Code
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;
			  }
		  }
	  }

}
vote_ok
von bossik (160 Punkte) - 13.09.2012 um 21:01 Uhr
Quellcode ausblenden Java-Code
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);
	}

}
vote_ok
von 23Java (510 Punkte) - 16.09.2012 um 10:51 Uhr
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:

Quellcode ausblenden Java-Code
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
vote_ok
von Jurom (1070 Punkte) - 19.10.2012 um 12:28 Uhr
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.

Quellcode ausblenden 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
vote_ok
von othutas (70 Punkte) - 28.04.2014 um 18:57 Uhr
Quellcode ausblenden Java-Code
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
Quellcode ausblenden Java-Code

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
Quellcode ausblenden Java-Code
No floating-point number

vote_ok
von unavailable (340 Punkte) - 29.04.2014 um 16:44 Uhr
Quellcode ausblenden Java-Code
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]+" ");

			}
		}
	}
vote_ok
von Okami (80 Punkte) - 16.09.2014 um 13:14 Uhr
Quellcode ausblenden Java-Code
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++;
				}
				}
		}
	}
	}
}
vote_ok
von ElPapito (2690 Punkte) - 07.05.2015 um 20:09 Uhr
Quellcode ausblenden Java-Code

/**
 * @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 + ".");
	}

}

vote_ok
von mty (690 Punkte) - 05.06.2015 um 12:30 Uhr
Quellcode ausblenden Java-Code
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());
    }
}
vote_ok
von Syntax6 (420 Punkte) - 09.09.2015 um 16:50 Uhr
Quellcode ausblenden Java-Code
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");
			}

		}

	}

}
vote_ok
von xy-no (250 Punkte) - 03.11.2015 um 16:32 Uhr
Quellcode ausblenden Java-Code
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();
	}

}
vote_ok
von Wingman (210 Punkte) - 07.12.2015 um 14:48 Uhr
Quellcode ausblenden Java-Code
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);
    }
}
vote_ok
von HaraldK (260 Punkte) - 21.02.2016 um 21:03 Uhr
Quellcode ausblenden Java-Code
/* @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:
vote_ok
von BigBBuddha (60 Punkte) - 07.04.2016 um 14:14 Uhr
Quellcode ausblenden Java-Code
/*
 * 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.
vote_ok
von Aron95 (20 Punkte) - 26.08.2016 um 14:38 Uhr
Quellcode ausblenden Java-Code
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);
		 	}
	}
	
	
	
}
vote_ok
von peow (100 Punkte) - 17.01.2017 um 19:51 Uhr
Quellcode ausblenden Java-Code
/**
 * 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);
            }
        }

    }
}
vote_ok
von Strelok1601 (60 Punkte) - 27.02.2017 um 11:32 Uhr
Quellcode ausblenden Java-Code
// 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();
   }
}
vote_ok
von Alesiana (20 Punkte) - 18.03.2017 um 11:54 Uhr
Quellcode ausblenden Java-Code
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);
            }
        }
    }
}
vote_ok
von Zitzus (80 Punkte) - 09.05.2017 um 22:41 Uhr
Quellcode ausblenden Java-Code
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 + ".");
    }
}
vote_ok
von guandi (230 Punkte) - 02.08.2018 um 15:54 Uhr
Quellcode ausblenden Java-Code
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);
			}
		}
	}
}
vote_ok
von Killerqueen (20 Punkte) - 17.10.2018 um 14:29 Uhr
Quellcode ausblenden Java-Code
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+" ");
			}
		}
	}
}
vote_ok
von uncle benks (20 Punkte) - 29.10.2019 um 20:25 Uhr
Quellcode ausblenden Java-Code
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);
    }
}
vote_ok
von Flocke (180 Punkte) - 31.10.2019 um 22:40 Uhr
Quellcode ausblenden Java-Code
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:

vote_ok
von kollar (340 Punkte) - 03.12.2019 um 15:11 Uhr
Quellcode ausblenden Java-Code
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());
	}

}
vote_ok
von HR_SS (330 Punkte) - 24.12.2019 um 12:28 Uhr
Quellcode ausblenden Java-Code
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;
			}
			
		}
	}
}
vote_ok
von McPils (20 Punkte) - 09.03.2020 um 11:00 Uhr
Quellcode ausblenden Java-Code
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");;
		}
		

	}

}
vote_ok
von 0 (0 Punkte) - 01.01.2021 um 21:46 Uhr
Quellcode ausblenden Java-Code
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!");
			}
			
		}
		
	}

}
vote_ok
von TheChuggler (120 Punkte) - 17.06.2021 um 15:55 Uhr
Quellcode ausblenden Java-Code
/** 
 * 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
2096493

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.