Joker0day icon

Math Calcul

Joker0day | PRO | 09/04/19 01:56:04 PM UTC | 0 ⭐ | 7836 👁️ | Never ⏰ | []
Perl |

770 B

|

None

|

0 👍

/

0 👎

#!/usr/bin/perl
use integer;
use strict;
 
# k = 96666, za okolo 1 min s -O2, 2 min plain na C
my $k = $ARGV[0] or die "usage: $0 number\n";
 
my @sig = qw( * + - );
 
my $i = 2;
while( $i++ )
  {
  my @op = ( 0 );
  my $t = 0;
  while(4)
    {
    $t++;
    inc_ops( \@op, $i - 1 );
    last if $op[ $i - 1 ] > 0;
    my $ev = '1';
    $ev .= $sig[ $op[ $_ - 2 ] ] . $_ for( 2 .. $i );
    my $res;
    eval "\$res=$ev";
    #print "ev: $ev=$res\n";
    die "FOUND($t): $ev==$k\n" if $res == $k;
    }
  }
 
sub inc_ops
{
  my $ar = $_[0];
  my $c = 1;
  for my $i ( 0 .. $_[1] )
    {
    $ar->[$i] = $ar->[$i] + $c;
    if( $ar->[$i] > 2 )
      {
      $c = 1;
      $ar->[$i] = 0;
      }
    else
      {
      $c = 0;
      }  
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎