Ankündigung

Einklappen
Keine Ankündigung bisher.

Zahlen mit Hilfe einer Tabelle ausgeben

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zahlen mit Hilfe einer Tabelle ausgeben

    Guten Abend,
    ich habe ein Programm geschrieben, welches mir alle Primzahlen bis zu einer bestimmten Zahl (die vom Benutzer festgelegt wird) ausgibt. Das funktioniert auch sehr gut, ich bin aber mit der Ausgabe der Zahlen nicht ganz zufrieden.

    Ich würde sie gerne in einer Tabelle (10 Spalten) ausgeben, in der jede Zahl vorkommt und die Primzahlen besonderst (z.B. farblich) makiert sind.

    Außerdem wäre es nett, wenn das Programm die Anzahl der Primzahlen ausgeben würde.

    PHP-Code:
    <html>
    <body>
    <h1>Primzahlenrechner</h1>
    <p>Geben sie eine Zahl ein. Das Programm wird Ihnen alle Primzahlen, die kleiner sind als diese Zahl, ausgeben.</p>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <input type="text" name="Zahl" value="<?php echo $_POST["Zahl"];?>"/>
        <input type="hidden" name="go"/>
        <input type="submit" value="Start"/>
    </form>

    <?php
    if (isset($_POST['go'])) {
      
    $n $_POST["Zahl"];

      for (
    $i=2$i<=$n$i++) {
        
    $gestrichen[$i] = false;
      }

      
    $i=2;
      while (
    $i*$i <= $n) {
        if (!
    $gestrichen[$i]){
          for (
    $j=$i*$i$j<$n$j=$j+$i) {
             
    $gestrichen[$j] = true;
          }
        }
        
    $i++;
      }

      for (
    $i=2$i<$n$i++) {
        if (!
    $gestrichen[$i]) {
            echo 
    $i."<br />";
        }

      }

    }

    ?>
    </body>
    </html>
    Vielen Dank für eure Hilfe!


  • #2
    Gruppenbruch (Standardverfahren) - PHP.de Wiki

    Außerdem wäre es nett, wenn das Programm die Anzahl der Primzahlen ausgeben würde.
    Wo ist das Problem, wenn die Anzahl sowieso schon vom User eingegeben wird?
    http://hallophp.de

    Kommentar


    • #3
      Nein, das war ungeschickt formuliert.
      Der User gibt eine Zahl ein und das Programm überprüft alle Zahlen von 2 bis zu dieser Zahl auf eine Primzahl. Er gibt nicht die Anzahl der Primzahlen, die gefunden werden sollen ein. Diese soll das Programm ausgeben.

      Kommentar


      • #4
        Wo ist das Problem? Einfach alle Zahlen ausgeben und in ne Tabelle stecken:

        Das ersetzt die letzte for-Schleife:
        PHP-Code:
        echo '<table>';
          
        $z 0;
          for (
        $i=2$i<$n$i++) {
            if (!
        $gestrichen[$i]) { 
                if(
        $z && $z 9){
                    echo 
        "<td><span style=\"color:red;\">".$i."</span></td>";
                    
        $z++;
                }
                else if(
        $z >= 9){
                    echo 
        "<td><span style=\"color:red;\">".$i."</span></td></tr>";
                    
        $z 0;
                }
                else{
                    echo 
        "<tr><td><span style=\"color:red;\">".$i."</span></td>";
                    
        $z++;
                }
            }
            else{
                if(
        $z && $z 9){
                    echo 
        "<td>".$i."</td>";
                    
        $z++;
                }
                else if(
        $z >= 9){
                    echo 
        "<td>".$i."</td></tr>";
                    
        $z 0;
                }
                else{
                    echo 
        "<tr><td>".$i."</td>";
                    
        $z++;
                }
            }

          } 
          echo 
        '</table>'

        Kommentar


        • #5
          Wow, vielen Dank!
          Jetzt bin ich fast voll zufrieden und ich hab viel gelernt.

          Ich würde trotzdem gerne noch wissen, wie ich die Anzahl der Primzahlen noch ausgeben lassen kann. Wäre super wenn mir jmd. das kurz sagen könnte.

          Kommentar


          • #6
            Das ist jetzt aber noch einfacher und wenn du wirklich etwas gelernt hast, solltest du es zuerst selbst versuchen

            Kommentar


            • #7
              Ja, das das nicht mehr als 2 Zeilen sein können ist mir klar...
              Ich dachte es müsste vielleicht so aussehen.
              PHP-Code:
                $anzahl count ();
              echo 
              $anzahl
              aber egal was ich in die Klammer einsetze es kommt immer 1 raus...
              ich glaub ich hab mit php einfach noch nicht so die Übung^^

              Kommentar


              • #8
                Wie wärs, wenn du bei jedem Schleifendurchgang mit Primzahl eine Variable höher setzt und die am Schluss ausgibtst?

                PS: Übrigens ist das nicht ein Problem mit PHP, sondern mit der grundlegenden Überlegungsweise, wie du solche Probleme angehst (in fast allen Programmiersprachen)

                Kommentar


                • #9
                  Puh, jetzt hab ichs geschafft^^
                  Ja, das ist mir klar. Php ist meine erste Programmiersprache, deshalb hab ich diese "grundlegenden Überlegungsweise[n]" noch nicht drauf
                  Ich hoffe das wird mit der Zeit.
                  Vielen Dank für deine Hilfe!!!

                  Kommentar

                  Lädt...
                  X