Brauche HILFE in C!!!!



  • Hallo
    ich habe Programmieren in der Schule und muss bis Mittwoch diese zwei Aufgaben lösen, kannn mir da ma einer bidde Helfen??
    Wär echt nett!

    1. Programm, welches alle geraden Zahlen von 1bisn addiert.
    2. Ermitteln Sie die Primzahlen von 1-100.

    THX
    jarule2001



  • Was hast du bist jetzt?

    und wo häengt es?



  • und warum verwendest Du keinen aussagekraeftigen Titel?



  • Bis jetzt hab ich noch nix, ich versteh bis jetzt nur Bahnhof!
    Ich bin schon die ganze Zeit am suchen, konnte aber noch nix finden 😞



  • Wie lang programmiert ihr denn schon ?



  • he, bis mittwoch ist noch ein wenig zeit...

    programmier mal das erste, tip: modulo 2 gibt immer die gerade zahlen.

    wenn du nicht weiterkommst, frage dann.



  • Ungefähr ein halbes Jahr nur bei dem Lehrer checkt man nix!!!
    Ich hab echt keine Ahnung 😞



  • Wenn du es nicht einmal schaffst die erste Übung hinzubekommen (wieso habt ihr überhaupt solch eine Aufgabe nach einem halben Jahr?),
    dann schau dir erstmal diese Links an: http://www.c-plusplus.net/c.htm



  • zu eins:
    2+4+6++n2+n=2k=1n/2k=(n/2)((n/2)+1)2+4+6+\cdots+n-2+n=2\sum_{k=1}^{n/2} k = (n/2)((n/2)+1)
    falls n gerade ist. mit dieser information kann es jeder nach ein par stunden lösen.
    😃

    ich habe gerade ein ganz tolle idee gehabt. damit die leute die faq sehen könnte man ja einen sticki thread oben rein machen der heisst:
    "HABE HILFE!!!!!!!!!" 😃



  • zu 2) Schau mal in deinem Mathebuch (so ca. 8./9. Klasse) unter ,,Sieb des Erastothenes'' nach.



  • Stentor schrieb:

    zu 2) Schau mal in deinem Mathebuch (so ca. 8./9. Klasse) unter ,,Sieb des Erastothenes'' nach.

    Warum so kompliziert?

    Eine Primzahl ist einfach eine Zahl die nur durch 1 und sich selbst ohne Rest dividierbar ist. Dies bedeutet:
    n ist durch 2..n-1 nicht glatt dividierbar, wenn n eine primzahl ist.
    Den Rest einer Division bekommt man per % (Modulo)

    und schon kann man das Problem lösen, ohne sich das Sieb oder sonstige komplizierte Sachen anzutun.

    Es läuft nicht schnell - aber dafür funktioniert es 🙂

    Das Sieb ist zwar auch nicht so kompliziert, aber für einen Anfänger sicher nicht geeignet.



  • japro schrieb:

    zu eins:
    2+4+6++n2+n=2k=1n/2k=(n/2)((n/2)+1)2+4+6+\cdots+n-2+n=2\sum_{k=1}^{n/2} k = (n/2)((n/2)+1)

    Wow, wo hast Du denn die Formel gefunden ?

    SirLant schrieb:

    Und die erste Aufgabe geht doch auch ohne so ne rießige Formel:

    Ja schon, (wo ist die Formel rießig ?)
    aber die Loesung von Japro finde ich doch sehr
    elegant. Ich habe naemlich mal
    Zahlen im Bereich 10 bis 2000 MioMio eingegeben und
    da braucht ein P4 je nach Zahl schon bis zu ueber 40 Sekunden,
    waehrend die Formel das Ergebnis gleich ausspuckt.



  • Und es gibt Ausnahmen die vom Sieb nicht erfasst werden.

    Und die erste Aufgabe geht doch auch ohne so ne rießige Formel:
    int erg = 0;
    for (i = 0; i <= 100; i += 2)
    erg += i;



  • SirLant schrieb:

    Und es gibt Ausnahmen die vom Sieb nicht erfasst werden.

    Und die waeren?



  • Shade Of Mine schrieb:

    Warum so kompliziert?

    😕

    Wenn man deinen Divisorbereich 2 - (n - 1) einschränkt auf 2 - sqrt(n) ist das doch schon das Sieb.

    Also

    bool isprim( int x ) 
    {
        for( int i = 2 ; i <= sqrt(x) ; i += 2 )
            if( x % i == 0 ) return 0;
        return 1;
    }
    

    MfF Stentor



  • Stentor schrieb:

    Shade Of Mine schrieb:

    Warum so kompliziert?

    😕

    Wenn man deinen Divisorbereich 2 - (n - 1) einschränkt auf 2 - sqrt(n) ist das doch schon das Sieb.

    Nein, das Sieb arbeitet gewoehnlich auf allen natuerlichen Zahlen (kleiner einer gewissen Grenze) gleichzeitig, indem erst alle Vielfachen von 2, dann von 3, etc. rausgestrichen werden. Shade will (genauso wie Du mit Deinem Code) nur eine einzelne Zahl testen.



  • SG1 schrieb:

    SirLant schrieb:

    Und es gibt Ausnahmen die vom Sieb nicht erfasst werden.

    Und die waeren?

    das würde mich auch interessieren.



  • japro schrieb:

    SG1 schrieb:

    SirLant schrieb:

    Und es gibt Ausnahmen die vom Sieb nicht erfasst werden.

    Und die waeren?

    das würde mich auch interessieren.

    Das stand mal in einem meiner C Bücher, mal sehen ob ich das Buch noch habe.
    Mal suchen.



  • Nein, das Sieb arbeitet gewoehnlich auf allen natuerlichen Zahlen (kleiner einer gewissen Grenze) gleichzeitig, indem erst alle Vielfachen von 2, dann von 3, etc. rausgestrichen werden. Shade will (genauso wie Du mit Deinem Code) nur eine einzelne Zahl testen.

    *patsch* 🙄
    Na gut:

    bool isnoprim[ 100 ];//kann man ja noch mit 1 initiallisiern, wäre dann isprim
    
    void prim( void ) {
        for( int i = 2 ; i < 10 ; i++ )
            for( int t = 2 ; t * i <= 100 ; t++ )
                isnoprim[ t * i ] = 1;
    }
    

    @SirLant: Dürfte eigentlich keine Ausnahem geben, da eine Primzahl als Zahl, die nur durch sich selbst und 1 teilbar ist, definiert ist. Da eine Primzahl
    Element von N ist, ist jeder potentielle Teiler < Primzahl. Wenn man jedoch alle Vielfache der Zahlen herausstreicht, hat man die Primzahlen. Wo soll das Problem sein?



  • Ist das C oder C++ was du da geschrieben hast??
    Die erste Aufgabe hab ich jetzt, kann jetzt bidde ma einer die 2 Aufgabe machen!
    THX
    jarule2001


Anmelden zum Antworten