Primzahlen bis X Java

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Scheint zu funktionieren. Warscheinlich ist der Ausgabepuffer deiner Console zu klein und die ersten Zeilen (Zahlen) werden aus dem Puffer gelöscht, bevor du sie lesen kannst. Debug doch einfach durch, dann wirst du sehen, dass 3,5,7,11 auch bei 500 gefunden werden.

Davon abgesehen: Gewöhn dir an, bei allen Kontrollstrukturen schließende und öffnende Klammern zu setzen. Warum? Naja falls du mal ein zweites Statement dazu nehmen möchstest, wirst du keine unliebsamen Überraschungen haben. Außerdem würde es reichen wenn du die äußere for Schleife bei 3 beginnst und nicht bei 2 (spielt aber keine große Rolle, passiert ja nur einmal). Eine weitere optimierung würde darin bestehen, dass du das prüfen schon abbrichst, wenn du 3 Teiler gefunden hast. Da musst du nicht noch weiter prüfen, die Zahl wird keine Primzahl mehr werden. Da kannst du ordentlich Zeit einsparen.

Und um noch mehr Zeit zu sparen, kannst du mal nach dem Sieb des Eratosthenes googlen. Das dürfte dann noch schneller sein. Außer du sollst die Primzahlen natürlich nach einem vorgegebenen Algorithmus berechnen :).

4

danke, aber wie gesagt bin ich anfänger, also wie "debugge ich durch"? ^^ hmmm... und wie mach ich dass er nach 3 teilern aufhört? xD leider sollen wir das so machen, sonst hätte ich den Sieb des Eratosthenes schon benutzt^^ vielen dank schonmal an der stelle :)

0
22
@HomerJay98

Ich kenn BlueJ nicht, hab immer nur NetBeans oder Eclipse für Java benutzt. Aber du kannst sicherlich auch damit einen Breakpoint in deinen Quellcode setzen (hier würde sich die Stelle mit der Ausgabe der Primzahl erstmal anbieten) und dann das Progrämmchen einfach über BlueJ starten. Dann müsste das Programm am Breakpoint stehen bleiben und du kannst dir den Zustand des Programms zu diesem Zeitpunkt genau anschauen.

0

Mach mal einen Vorschlag, welche Bedeutung Deine Codezeilen haben sollen. Die beste Vorgehensweise, inhaltliche Fehler zu finden, ist zu versuchen, den Code anderen Leuten zu ERKLÄREN.

Also: Versuche, anhand dessen, was Du über Primzahlzerlegung gelernt hast, Dein Verfahren zu beschreiben! Wie bzw. wo in Deinem Code werden die Faktoren gefunden, durch die... ja: WAS eigentlich? ...teilbar sein soll?!

Ich vermute, daß Du, sobald Du versuchst, die Funktion der inneren Schleife zu beschreiben, in die Bredrouille kommen wirst...

Wie soll das jemand sagen, wenn du nicht mehr dazu offenlegst?

4

public class Primzahlen

{

    public static void main(int z1)
    {
            int max = z1;
            int n;                                                       
            int x;                                                    
            int teiler;                                                     
            int rest;                                                      
            for (n = 2; n <= max; n++)                           
            {
                    if (n!=2)
                    {
                            teiler = 0;
                            for (x = 1; x <= n; x++)   
                            {
                                    rest = n % x;                 
                                    if (rest == 0)                         
                                            teiler++;


                            }
                            if (teiler == 2)                               
                                    System.out.println(n);
                    }
                    if (max<=2)
                    {
                            System.out.println ("Bis "+z1+" gibt es keine Primzahlen.");
                    }
            }
    }

}

0

Fehler beim Programmieren BlueJ Java Informatik?

Hallo zusammen! Informatiker sind gefragt :) Ich habe ein Problem! Ich bin gerade an dem Projekt Rollergang am arbeiten und komme nicht weiter. Ich hänge nun paar Screenshots an. Beim Übersetzen kommt folgende Fehlermeldung! (Siehe Anhang)

Simon


...zur Frage

Informatik, BlueJ: Attribute bei Liste mit Knoten ändern?

Ich bin ein ziemlicher Anfänger in Informatik, also kommt diese Frage jetzt vielleicht dumm. Und es ist eigentlich total selbstverständlich, aber ich schreib übermorgen einen Test und verstehe es gerade nicht😅.

Also bei einer Liste mit Anfang, beliebig vielen Knoten und einem Abschluss am Ende will ich vorne einen neuen Knoten einfügen. Das mach ich, indem ich zuerst von der Liste aus einen Knoten erstelle, diesem möchte ich dann den alten Anfang als Nachfolger zuweisen. Wie mach ich das? Kann man einfach, nachdem man ihn erstellt hat, 

newKnoten.Nachfolger = anfang;

schreiben? Also wenn ein Attribut von Knoten „KNOTEN Nachfolger“ heißt? Kann man Attribute einfach so ändern (vielleicht wenn sie nicht auf private sind?) oder muss man dafür einzelne Methoden erstellen?
Hier noch ein Bild; ist das

newKnoten.Nachfolger = anfang;

einfach eine Änderung des Attributs? Kann man das so machen?

...zur Frage

Wie kann ich in BlueJ (Java) einen Zinssatz ausrechen?

Hallo BlueJ-Nützer!

Ich habe eine Aufgabe mit einen Beispiel bekommen:

berechneZinsen()* … diese Methode wird „theoretisch“ einmal im Jahr ausgeführt und berechnet die Zinsen für den gesparten Betrag. Von den Zinsen sind leider 25% (die sogenannte KapitalErtragsSTeuer) abzuziehen. Der verbleibende Zinsertrag wird zum aktuellen Betrag addiert.*

Beispiel:

Sparbuch für Max Mustermann:
gesparter Betrag: 1200.0 €
aktueller Zinssatz: 0.3 %
gesperrt: nein

Ich verstehe nicht, wie ich den Zinssatz ausrechne...Kann mir wer helfen?

...zur Frage

Informatik: Java List Zähler?

Ich mache gerade meine Informatik Hausaufgaben und wollte eine Methode schreiben, die durch die List ,,vokabelliste" durchläuft und dabei zählt wie lang sie ist, d.h. wie viele Objekte sich in ihr befinden. Irgendwie funktioniert es aber nicht... Kann mir jemand helfen?

...zur Frage

Wie kann ich das programmiertechnisch in BlueJ mit Java umsetzen?

Hallo liebe Community,

ich habe die Aufgabe bekommen, in BlueJ ein Programm zu schreiben, dass Steuern berechnet. Falls der zu versteuernde Betrag unter 5000€ liegt, sind keine Steuern zu zahlen, ab 5000€ sind 10% Steuern zu zahlen, ab 20.000€ sind 15% zu zahlen, bei 50.000€ 20%. Der Benutzer des Programmes soll dann den zu versteuernden Betrag eingeben können und erhält als Ausgabe den Steuersatz und die zu zahlenden Steuern.

Ich habe bis jetzt den Konstruktor mit den Standardwerten initialisiert und die Methode, welche es ermöglicht, die Steuern einzugeben, geschrieben. Ich komme jetzt jedoch nicht bei der Methode weiter, welche den Steuerbetrag berechnet und ausgibt. Höchstwahrscheinlich muss das dann ja in Form einer If-Anweisung erfolgen, aber wie genau? Bin absoluter Anfänger, was die Programmierung angeht und bin deshalb über jeden Rat froh!

Hier zur besseren Nachvollziehbarkeit der bisherige Quelltext:

/** * Ein Programm, das die zu zahlende Steuer abhängig von einem Betrag berechnet und zusammen mit dem * entsprechenen Steuersatz anzeigt. * * @author: * @version: 1 */ public class Steuer { // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen private double Kapital; private double Steuersatz; private double Steuern;

/**
 * Konstruktor für Objekte der Klasse Steuer
 */
public Steuer()
{
    // Instanzvariable initialisieren
    Kapital = 0;
    Steuersatz = 0;
    Steuern = 0;
}

/**
 * Gib das Kapital an.
 */ 
public void gibKapital (double neuesKapital)
{
    // tragen Sie hier den Code ein
    Kapital = neuesKapital;

}

/** 
 * Gib den Steuersatz an, der dem eingegebenen Kapital entspricht.
 */
public int gibSteuersatz (double Steuersatz, double neuesKapital)

{
    if (neuesKapital <= 5000())
    {
        System.out.println("Sie müssen keine Steuern zahlen. Herzlichen Glückwunsch!");
    }
    
...zur Frage

IT Wissen aneignen

Hallo Community,

ich hoffe, dass ihr mir helfen könnt, weil ich nicht weiß wie ich anfangen soll. Und zwar möchte ich mir mehr IT Wissen aneignen und weiß nicht wie.:D Also welche Programmiersprache sollte ich können? Den Aufbau eines Computers? Theoretisch Sachen? Was gibt es überhaupt alles?

Da dieser Bereich ja ziemlich breit gefächert ist, habe ich keine Ahnung was mich interessiert geschweige denn welche Bereiche es überhaupt gibt und wie ich konkret an die Sache rangehen soll.

Ich bin nämlich ein ziemlicher Informatik Noob:D Der Informatikunterricht in der Schule ist nicht schwer und da reicht es auch für eine sehr gute Note, aber wenn man die "Schulinformatik" mit der "richtigen" Informatik vergleicht, herrscht doch ein ziemlich großer Unterschied meiner Meinung nach. ( Falls es relevant sein sollte wir lernen gerade Java mit BlueJ , sind also noch bei den grundlegenden Basics.)

Danke im voraus für hilfreiche Antworten!:D

...zur Frage

Was möchtest Du wissen?