Project Euler 130
@see http://projecteuler.net/index.php?section=problems&id=130
♥0 |
Line 44 |
Modified 2009-07-22 03:33:48 |
MIT License
archived:2017-03-30 04:52:30
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/1qL2
*/
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.utils.getTimer;
// @see http://projecteuler.net/index.php?section=problems&id=130
public class Euler130 extends Sprite {
private var _tf : TextField;
public function Euler130() {
_tf = new TextField();
_tf.width = 465;
_tf.height = 465;
addChild(_tf);
var s : int = getTimer();
_tf.appendText("" + solve(25) + "\n");
var g : int = getTimer();
_tf.appendText("" + (g - s) + " ms\n");
}
private function solve(T : int) : int
{
var ret : int = 0;
var ct : int = 0;
for(var n : int = 91;ct < T;n+=2){
if(n % 5 == 0 || isPrime(n))continue;
for(var v : int = 1, a : int = 1;v != 0;v = (int(v * 10) + 1) % n, a++);
if((n - 1) % a == 0){
ct++;
ret += n;
}
}
return ret;
}
private function isPrime(n : Number) : Boolean
{
if(n <= 1)return false;
if(n % 2 == 0)return n == 2;
var sq : int = Math.sqrt(n);
for(var i : int = 3;i <= sq;i+=2){
if(n % i == 0){
return false;
}
}
return true;
}
}
}