Project Euler 225
@see http://projecteuler.net/index.php?section=problems&id=225
♥0 |
Line 58 |
Modified 2009-07-24 02:47:06 |
MIT License
archived:2017-03-30 04:52:00
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/bIDZ
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.utils.getTimer;
// @see http://projecteuler.net/index.php?section=problems&id=225
public class Euler225 extends Sprite {
private var _tf : TextField;
public function Euler225() {
_tf = new TextField();
_tf.width = 465;
_tf.height = 465;
addChild(_tf);
var s : int = getTimer();
t(solve());
var g : int = getTimer();
t((g - s) + " ms");
}
private function solve() : int
{
var ct : int = 0;
var seed : Array = [];
for(var i : int = 1;i <= 1100;i++){
var mem : Object = {};
var a : int = 1;
var b : int = 1;
var c : int = 1;
var n : int = 2 * i + 1;
var f : int = 0;
for each(var s : int in seed){
if(n % s == 0){
ct++;
t(n + " " + ct);
f = 1;
break;
}
}
if(f == 1)continue;
while(true){
var d : int = (a + b + c) % n;
if(d == 0)break;
a = b; b = c; c = d;
var code : Number = (a * n + b) * n + c;
if(mem[code])break;
mem[code] = 1;
}
if(d != 0){
seed.push(n);
ct++;
t(n + " " + ct);
}
}
return 0;
}
private function t(o : *) : void
{
_tf.appendText("" + o + "\n");
}
}
}