Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Co w tym skrypcei nie gra - liczby pierwsze
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


  1. <?
  2. $liczba = $_GET['nr'];
  3.  
  4. $ile = '0';
  5. $x = '1';
  6.  
  7. while($x <= $liczba && $ile <= '2')
  8. {
  9.  $policz = $liczba/$x;
  10. if(substr_count($policz,'.') == '0');
  11. {
  12.  $ile++;
  13. } 
  14.  $x++;
  15. unset($policz);
  16. }
  17.  
  18. echo $ile.'<br>'.$x;
  19.  
  20. ?>


Tak z nudow napisalem, zwraca zawsze 3<br>4 jesli liczba wieksza lub rowna 3.

Co tu nie gra ?



p.s. Jest na liczby piwersze jakis szybszy algorytm ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pbnan
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

Ostrzeżenie: (0%)
-----


Wg manuala (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
  1. <?php
  2. //bcpi function with Gauss-Legendre algorithm
  3. //by Chao Xu (Mgccl)
  4. function bcpi($precision){
  5. $limit = ceil(log($precision)/log(2))-1;
  6. bcscale($precision+6);
  7. $a = 1;
  8. $b = bcdiv(1,bcsqrt(2));
  9. $t = 1/4;
  10. $p = 1;
  11. while($n < $limit){
  12. $x = bcdiv(bcadd($a,$b),2);
  13. $y = bcsqrt(bcmul($a, $b));
  14. $t = bcsub($t, bcmul($p,bcpow(bcsub($a,$x),2)));
  15. $a = $x;
  16. $b = $y;
  17. $p = bcmul(2,$p);
  18. ++$n;
  19. }
  20. return bcdiv(bcpow(bcadd($a, $b),2),bcmul(4,$t),$precision);
  21. }
  22. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 20:42