Project Euler 174

by uwi
@see http://projecteuler.net/index.php?section=problems&id=174
♥0 | Line 35 | Modified 2009-07-14 12:21:57 | 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/jQmn
 */

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.utils.getTimer;
    // @see http://projecteuler.net/index.php?section=problems&id=174
    public class Euler174 extends Sprite {
        private var _tf : TextField;
  
        public function Euler174() {
            _tf = new TextField();
            _tf.width = 465;
            _tf.height = 465;
            addChild(_tf);
            
            var s : int = getTimer();
            _tf.appendText("" + solve(1000000) + "\n");
            var g : int = getTimer();
            _tf.appendText("" + (g - s) + " ms\n");
        }
        
        private function solve(T : int) : int
        {
            var sup : int = T >> 2;
            
            var cts : Array = [];
            var i : int;
            for(i = 0;i < sup;i++)cts.push(0);
            
            for(var h : int = 1;h <= sup;h++){
                for(var k : int = 1;k * (h + k) <= sup;k++){
                    cts[k * (h + k)]++;
                }
            }
            
            var ret : int = 0;
            for(i = 0;i < sup;i++){
                if(cts[i] >= 1 && cts[i] <= 10)ret++;
            }
            return ret;
        }
    }
}