Euler 7
forked from Euler 4 (diff: 45)
ActionScript3 source code
/**
* Copyright enecre ( http://wonderfl.net/user/enecre )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/nM5R
*/
// forked from enecre's Euler 4
// forked from enecre's Euler3
// forked from enecre's forked from: Euler6
// forked from enecre's Euler6
// forked from enecre's Euler2
package {
import flash.events.Event;
import flash.text.TextField;
import flash.display.Sprite;
public class Euler extends Sprite {
private var tf:TextField = new TextField();
private var tf2:TextField = new TextField();
public function Euler() {
// write as3 code here..
tf.height = 465;
addChild(tf);
tf2.x = 200;
tf2.height = 465;
addChild(tf2);
init();
}
private var n:uint = 2;
private var i:int = 0;
private var map:Vector.<Boolean>;
public function init():void{
map = new Vector.<Boolean>(200000);
tr(map[101] == null);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(e:Event):void{
if(map[n] != true){
if(isPrime(n)){
var t:int = n * n;
while(t < 200000){
map[t] = true;
t += n;
}
i++;
tr(n, i);
}
if(i == 10001){
tr2(n);
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
}
n++;
}
private function isPrime(n:uint):Boolean{
var l:int = int(Math.sqrt(n));
for(var i:int = 2; i <= l; i++){
if(n % i == 0)return false;
}
return true;
}
private function tr2(...o:Array):void{
tf2.appendText(o + "\n");
tf2.scrollV = tf2.maxScrollV;
}
private function tr(...o:Array):void{
tf.appendText(o + "\n");
tf.scrollV = tf.maxScrollV;
}
}
}
