Hoffentlich einfaches + schnelles BlueJ Problem!!!

  • Wie überprüfe ich eine Zahl aus zwei int - Variablen auf ihre Ganzzahligkeit??? :lol:


    public class Primzahlausgabe {
    public void primzahlenVon2Bis (int n) {
    m = 2;
    i = 2;
    if (n <= m);
    else {
    if (i = m)
    system.out.println( m + " ist Pimzahl");
    else {
    if ( i / m = "Hier sollte die Überprüfung stehen...")
    m = m + 1;
    else ( i = i + 1)
    }
    }
    }
    }

  • meinst du "modulus" oder so ähnlich ?
    if(m%2 == 0) {
    system.out.println(m + " ist grade")
    }

    zu deiner frage: int ist eine zahl ohne komma !?!

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Nun ja, ich gebe ja zwei Ganzzahlige Variablen vor, die durcheinander dividierd werden sollen: und nun soll bei Ganzzahligkeit des Ergebnises die if - Bed. folgen...

  • probier mal statt teilen den modulus: m%n oder wie auch immer die variablen heissen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Ok, danke. Hab zumindest jetzt schon mal ne funktionierende Syntax, aber des Programm gibt mir noch Trash aus... Trotzdem Danke!

    Aber gleich noch ein Problem: Wieso funktioniert mein n!-Rechner nur mit den Zahlen 1-12, ab 13 liefert er zwar ausgaben, die aber leider falsch sind.

    Hängt das viell. irgendwie mit dem Input von int-Zahlen zusammen? Meineserachten nach sollte er wenigstens bis ~19 korrekte Zahlen ausgeben (rein von der Größe der auszugebenden Zahlen...)


    public class MyMath {
    // funktioniert nur bis 12...?!? Ab 13 ist das Ergebnis falsch!!!
    public void fakultaet (int x) {
    int fakultaet = 1;
    for (int i = 1; i <= x; i = i + 1 ) {
    fakultaet = fakultaet * i;
    }
    System.out.println("Die Fakultaet von " + x + " ist: " + fakultaet);
    }


    //funktioniert ebenfalls nur bis 12...! Fehler: s.o.
    public void fakultaet2 (int x) {
    int fakultaet2 = 1;
    int i = 1;
    while (i <= x) {
    fakultaet2 = fakultaet2 * i;
    i = i + 1;
    }
    System.out.println("Die Fakultaet von " + x + " ist: " + fakultaet2);
    }
    }

  • Hat keiner nen Plan? Das sind 2 unabhängige Funktionen die auf zwei Arten die Fakultät einer Zahl ausgeben, nur leider liefern sie beide nur für Zahlen bis 12 das korrekte Ergebnis... Help!

    No-Pro

  • Hi.

    Das liegt daran, das in Java (darum gehts doch, oder?) Integer nur bis 2147483647 gehen, 13! aber 6227020800 sind.

    Die Größenbeschränkung auf 2147483647 liegt daran, dass Integer in Java "signed" also mit Vorzeichen behaftet sind..... der Rahmen von Integern liegt damit zwischen -2147483647 und +2147483647 und nicht bei 2^32...


    Gruß
    Ken