За последние 24 часа нас посетили 55809 программистов и 1778 роботов. Сейчас ищет 781 программист ...

Проблема с While

Тема в разделе "PHP для новичков", создана пользователем mawa, 7 апр 2009.

  1. mawa

    mawa Активный пользователь

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Доброго дня, подскажите пожалуйста, почему не работает последний do-while(не выполняются 3 условия)???
    PHP:
    1.  
    2. //------------------------------------------------------------------
    3.         // сеет с микросекундами
    4.         function make_seed() {
    5.             list($usec, $sec) = explode(' ', microtime());
    6.             return (float) $sec + ((float) $usec * 100000);
    7.         }
    8.        
    9.         //генерация простых чисел
    10.         function Prostoe_4islo()
    11.         {
    12.             do
    13.             {
    14.                 $c=0;
    15.                 srand(make_seed());
    16.                 $a=rand(999,65535);
    17.                 $b=$a;
    18.                 if ($a>999)
    19.                 {
    20.                    do
    21.                    {
    22.                       $b=$b-1;
    23.                       if (($a%$b)==0)
    24.                       {
    25.                         $c++;
    26.                         break;
    27.                       }      
    28.                    }
    29.                    while($b!=2);
    30.                 }
    31.                 else
    32.                     $c=1;      
    33.             }
    34.             //while(($c!=0) and (($a % 2)==0));
    35.             while($c!=0);
    36.         //   echo "<br>---  ".$c."  ------<br>";
    37.             return $a; 
    38.         }
    39.        
    40.         //p u q должны быть сравнимы с 3 по модулю 4
    41.         function Vu4et($a)
    42.         {
    43.             if ((($a-3)%4)==0)
    44.                 $a=1; //ok
    45.             else   
    46.                 $a=0;
    47.             return $a; 
    48.         }
    49.        
    50. //--------генератор----------------------------------
    51.         do
    52.         {
    53.             $p=Prostoe_4islo();
    54.             echo $p."<br>";
    55.             $p1=Vu4et($p);
    56.             $q=Prostoe_4islo();
    57.             echo $q."<br>";
    58.             $p2=Vu4et($q);
    59.         }
    60.         while(($p==$q)and($p1!=1)and($p1!=$p2));
    61.         echo($p1."    -     ".$p2);
    62.  
    если выводить р1 и р2, то они должны быть р1=р2=1, а они как попало выводятся?
     
  2. alexeurodnepr

    alexeurodnepr Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    не знаю, что ты тут хотел показать, но в последнем условии может быть должно while(($p!=$q)

    ---
    while(($p==$q)and
    если его читать то - выполняй код, пока $p будет равен $q, вообщем... равны они будут очень редко