# -*- mode: icon -*-
# $Id: random.icon,v 1.2 2001/05/08 01:51:39 doug Exp $
# http://www.bagley.org/~doug/shootout/

$define IM 139968
$define IA 3877
$define IC 29573

procedure gen_random(max)
    static LAST; initial LAST := 42;
    repeat { suspend((max * (LAST := (LAST * IA + IC) % IM)) / IM) }
end

procedure main(argv)
    n := argv[1] | 1;
    every i := 2 to n do gen_random(100.0)
    # Icon has fixed number of output decimal points to 9, bogus!
    write(gen_random(100.0))
end