Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] primzahlen mit php

Einklappen

Neue Werbung 2019

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

  • [Erledigt] primzahlen mit php

    Hi,

    ich wollte folg. BASIC Programm in PHP umschreiben:

    Code:
    10 LET z = 0
    20 LET n = 0
    30 IF (2 ^ n) > z THEN GOTO 50 END IF
    33 LET n = n + 1
    35 GOTO 30
    50 LET n = (n - 1)
    60 PRINT (n)
    90 LET z = z - (2 ^ n)
    100 IF z <> 0 THEN GOTO 20 END IF
    130 END
    darauf hab ich folgendes gemacht:

    PHP-Code:
    <?php
    $z 
    0;
    $n 0;
    while((
    $n) > $z){
     if((
    $n) > $z){
      
    $n--;
      echo 
    $n." - ";
      
    $z $z - ($n);
      if(
    $z != 0){
       
    $n 0;
      }
     }else{
      
    $n++;
     }
    }
    ?>
    nur leider gibt der mir jetzt immer nur -1 aus, was hab ich übersehn/falsch gemacht?


  • #2
    30 IF (2 ^ n) > z THEN GOTO 50 END IF
    while((2 ^ $n) > $z){
    Bedingung umgedreht. Du willst while( <= ) haben.

    Was machst Du da innerhalb der Schleife? Das steht so nicht im Basic-Programm.
    Code:
    10 LET z = 0
    20 LET n = 0
    ---
    | ---
    | | 30 IF (2 ^ n) > z THEN GOTO 50 END IF
    | | 33 LET n = n + 1
    | | 35 GOTO 30
    | ---
    | 50 LET n = (n - 1)
    | 60 PRINT (n)
    | 90 LET z = z - (2 ^ n)
    | 100 IF z <> 0 THEN GOTO 20 END IF
    ----
    130 END
    Zwei Schleifen. Eine innere, sehr einfache, ein Einzeiler. Und eine äußere.

    Kommentar


    • #3
      irgendwie binsch jetzt verwirrt ^^
      kannst mir ma ne verbessung posten?

      Kommentar


      • #4
        was ist n und was z ????
        www.keine-angst-vorm-pc.de/forum

        Kommentar


        • #5
          PHP-Code:
          <?php
          //10 LET z = 0
          $z 0;
          //20 LET n = 0 
          $n 0;
          do
          {
              
          // 30 IF (2 ^ n) > z THEN GOTO 50 END IF
              
          while ( (2^$n) <= $z ) {
                  
          // 33 LET n = n + 1
                  
          $n += 1;
                  
          // 35 GOTO 30
              
          }
                  
              
          // 50 LET n = (n - 1)
              
          $n -= 1;
              
          // 60 PRINT (n)
              
          echo $n" ";
              
          // 90 LET z = z - (2 ^ n)
              
          $z $z - ($n);
          //100 IF z <> 0 THEN GOTO 20 END IF    
          } while ($z != 0)
          // 130 END
          ?>
          Aber das gibt auch nur -1 3 3 3 aus. Wirkt auf mich nicht sonderlich sinnvoll. Ob das richtig ist?

          Kommentar


          • #6
            Gefunden mit Google:
            PHP-Code:
            <?php
                $prim
            [0] = 2;
                
            $primXn[0] = 2;

                
            $n 3;
                
            $max 100;

                while( 
            $n $max )
                {
                    
            $length count($prim);

                    for ( 
            $idx=$idx $length $idx++ )
                    {
                        if( 
            $primXn[$idx] < $n $primXn[$idx] += $prim[$idx];
                        if( 
            $primXn[$idx] == $n $idx $length+1;
                    }

                    if( 
            $idx == $length )
                    {
                        
            $prim[$idx] = $n;
                        
            $primXn[$idx] = $n;
                    }

                    
            $n+=2;
                }

            echo 
            '<pre>';
            print_r($prim);
            echo 
            '</pre>';

            ?>

            Kommentar


            • #7
              Hier noch eine Variante:

              PHP-Code:
              <?php
              function isPrime$num )
              {
                  for( 
              $i 2$i*$i <= $num$i++ )
                      if( !(
              $num $i) )
                          return 
              FALSE;

                  return 
              TRUE;
              }

              $begin 3;
              $end 1000;

              echo 
              '<pre>'
              for(
              $i $begin$i<$end$i++)
              {
                  if(
              isPrime($i) == TRUE)
                  {
                      echo 
              "$i\n";
                  }
              }
              echo 
              '</pre>';
              ?>

              Kommentar


              • #8
                was macht eigentlich der ^-operator?
                das auf php.net versteh ich nicht, kann mir das jemand erklären?

                eagleScripts.de

                Kommentar


                • #9
                  Kram mal deine Mathe-Kenntnisse aus der Schublade
                  Nennen wir es potenzieren.

                  Kommentar


                  • #10
                    ja ok das ^ kannt ich nicht!
                    aber auf php.net steht:
                    echo 12 ^ 9; // Ausgabe '5'
                    wie kommen die da drauf?
                    und was machen so die anderen operatoren die man da sieht?
                    sry bin erst 14

                    eagleScripts.de

                    Kommentar


                    • #11
                      Oh... sorry, war mir so sicher, dass das potenziert.
                      Muss dann doch was anderes sein. Nehme alles zurück. Wo liest du denn nach?
                      EDIT: http://de3.php.net/pow

                      Kommentar


                      • #12
                        hier guck ich nach http://www.php.net/manual/de/languag...rs.bitwise.php
                        wollte ich eig schon im letzten post posten habs aber wohl vergessen ^^

                        eagleScripts.de

                        Kommentar


                        • #13
                          Achso.

                          Versteh' ich nicht ganz, hehe

                          Kommentar


                          • #14
                            http://de.wikipedia.org/wiki/XOR-Verknüpfung

                            Kommentar


                            • #15
                              jo xor versteh ich ja aber die operatoren da nicht!

                              eagleScripts.de

                              Kommentar

                              Lädt...
                              X