3v4l.org

run code in 300+ PHP versions simultaneously
<?php function get_primes7($n) { if ($n < 2) return array(); if ($n == 2) return array(2); $s = array(); for($i = 3; $i <= $n; $i += 2) $s[] = $i; $mroot = sqrt($n); $half = count($s); $i = 0; $m = 3; while ($m <= $mroot) { if ($s[$i]) { $j = (int)(($m*$m - 3) / 2); $s[$j] = 0; while ($j < $half) { $s[$j] = 0; $j += $m; } } $i = $i + 1; $m = 2*$i + 3; } $res = array(2); foreach ($s as $v) { if ($v) { $res[] = $v; } } return $res; } $res = array(); for ($i = 1; $i <= 10; ++$i) { $res = get_primes7(10000); print "Found ".count($res)." prime numbers.\n"; }
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 3
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 3
Branch analysis from position: 14
Branch analysis from position: 3
filename:       /in/dt3fl
function name:  (null)
number of ops:  15
compiled vars:  !0 = $res, !1 = $i
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   36     0  E >   ASSIGN                                                   !0, <array>
   37     1        ASSIGN                                                   !1, 1
          2      > JMP                                                      ->12
   38     3    >   INIT_FCALL                                               'get_primes7'
          4        SEND_VAL                                                 10000
          5        DO_FCALL                                      0  $4      
          6        ASSIGN                                                   !0, $4
   39     7        COUNT                                            ~6      !0
          8        CONCAT                                           ~7      'Found+', ~6
          9        CONCAT                                           ~8      ~7, '+prime+numbers.%0A'
         10        ECHO                                                     ~8
   37    11        PRE_INC                                                  !1
         12    >   IS_SMALLER_OR_EQUAL                                      !1, 10
         13      > JMPNZ                                                    ~10, ->3
   40    14    > > RETURN                                                   1

Function get_primes7:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 4
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 10
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 46, Position 2 = 24
Branch analysis from position: 46
2 jumps found. (Code = 77) Position 1 = 48, Position 2 = 53
Branch analysis from position: 48
2 jumps found. (Code = 78) Position 1 = 49, Position 2 = 53
Branch analysis from position: 49
2 jumps found. (Code = 43) Position 1 = 50, Position 2 = 52
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 48
Branch analysis from position: 48
Branch analysis from position: 52
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 39
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 37
Branch analysis from position: 37
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 34
Branch analysis from position: 39
2 jumps found. (Code = 44) Position 1 = 46, Position 2 = 24
Branch analysis from position: 46
Branch analysis from position: 24
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 39, Position 2 = 34
Branch analysis from position: 39
Branch analysis from position: 34
Branch analysis from position: 39
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 15, Position 2 = 10
Branch analysis from position: 15
Branch analysis from position: 10
filename:       /in/dt3fl
function name:  get_primes7
number of ops:  56
compiled vars:  !0 = $n, !1 = $s, !2 = $i, !3 = $mroot, !4 = $half, !5 = $m, !6 = $j, !7 = $res, !8 = $v
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1        IS_SMALLER                                               !0, 2
          2      > JMPZ                                                     ~9, ->4
          3    > > RETURN                                                   <array>
    5     4    >   IS_EQUAL                                                 !0, 2
          5      > JMPZ                                                     ~10, ->7
          6    > > RETURN                                                   <array>
    6     7    >   ASSIGN                                                   !1, <array>
    8     8        ASSIGN                                                   !2, 3
          9      > JMP                                                      ->13
    9    10    >   ASSIGN_DIM                                               !1
         11        OP_DATA                                                  !2
    8    12        ASSIGN_OP                                     1          !2, 2
         13    >   IS_SMALLER_OR_EQUAL                                      !2, !0
         14      > JMPNZ                                                    ~15, ->10
   11    15    >   INIT_FCALL                                               'sqrt'
         16        SEND_VAR                                                 !0
         17        DO_ICALL                                         $16     
         18        ASSIGN                                                   !3, $16
   12    19        COUNT                                            ~18     !1
         20        ASSIGN                                                   !4, ~18
   13    21        ASSIGN                                                   !2, 0
   14    22        ASSIGN                                                   !5, 3
   15    23      > JMP                                                      ->44
   16    24    >   FETCH_DIM_R                                      ~22     !1, !2
         25      > JMPZ                                                     ~22, ->39
   17    26    >   MUL                                              ~23     !5, !5
         27        SUB                                              ~24     ~23, 3
         28        DIV                                              ~25     ~24, 2
         29        CAST                                          4  ~26     ~25
         30        ASSIGN                                                   !6, ~26
   18    31        ASSIGN_DIM                                               !1, !6
         32        OP_DATA                                                  0
   19    33      > JMP                                                      ->37
   20    34    >   ASSIGN_DIM                                               !1, !6
         35        OP_DATA                                                  0
   21    36        ASSIGN_OP                                     1          !6, !5
   19    37    >   IS_SMALLER                                               !6, !4
         38      > JMPNZ                                                    ~31, ->34
   24    39    >   ADD                                              ~32     !2, 1
         40        ASSIGN                                                   !2, ~32
   25    41        MUL                                              ~34     !2, 2
         42        ADD                                              ~35     ~34, 3
         43        ASSIGN                                                   !5, ~35
   15    44    >   IS_SMALLER_OR_EQUAL                                      !5, !3
         45      > JMPNZ                                                    ~37, ->24
   27    46    >   ASSIGN                                                   !7, <array>
   28    47      > FE_RESET_R                                       $39     !1, ->53
         48    > > FE_FETCH_R                                               $39, !8, ->53
   29    49    > > JMPZ                                                     !8, ->52
   30    50    >   ASSIGN_DIM                                               !7
         51        OP_DATA                                                  !8
   28    52    > > JMP                                                      ->48
         53    >   FE_FREE                                                  $39
   33    54      > RETURN                                                   !7
   34    55*     > RETURN                                                   null

End of function get_primes7

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
155.92 ms | 947 KiB | 17 Q