flash on 2009-10-31

by uwi
@see http://projecteuler.net/index.php?section=problems&id=
♥0 | Line 38 | Modified 2009-10-31 13:12:48 | MIT License
play

ActionScript3 source code

/**
 * Copyright uwi ( http://wonderfl.net/user/uwi )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/w1Hl
 */

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.getTimer;
    // @see http://projecteuler.net/index.php?section=problems&id=
    public class Euler extends Sprite {
        private var _tf : TextField;
  
        public function Euler() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);
            
            var s : int = getTimer();
            tr(solve(10000));
            var g : int = getTimer();
            tr((g - s) + " ms");
        }

        private function solve(N : int) : Number
        {
            var m : int, k : int;
            for(k = 1;k < N;k++){
                for(m = 1;m < k;m++){
                    var D : Number = m * (m + 1) * ((2 * k - m) * (2 * k - m) + m);
                    var sd : Number = Math.sqrt(D);
                    if(sd == int(sd)){
                        tr(m, k, sd);
                        break;
                    }
                }
            }
            return 0;
        }

        private function tr(...o : Array) : void
        {
            _tf.appendText(o + "\n");
            _tf.scrollV = _tf.maxScrollV;
        }
    }
}