Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- // Author: Dmitri Pavlenkov, 2010
- Array.prototype.reduce=function(fn,init) {
- if(this.length===0) {
- return init;
- }
- var result=init;
- if(init) {
- result=fn(init,this[0]);
- } else {
- result=this[0];
- }
- for(var i=1;i<this.length;i++) {
- result=fn(result,this[i]);
- }
- return result;
- }
- var fibs=[0,1];
- function fib(n) {
- if(fibs.length<=n) {
- for(var i=fibs.length;i<=n;i++) {
- fibs[i]=fibs[i-1]+fibs[i-2];
- }
- }
- return fibs[n];
- }
- function primedivisors(n) {
- var divs=[];
- var res=1;
- for(var i=2;i<=n/2;i++) {
- if(res===n) {
- break;
- }
- if(!isprime(i)) {
- continue;
- }
- var p=0;
- var d=i;
- while(n%d===0) {
- d*=i;
- res*=i;
- p++;
- if(res===n) {
- break;
- }
- }
- if(p) {
- divs.push([i,p]);
- }
- }
- if(!divs) {
- divs.push([n,1]);
- }
- return divs;
- }
- primes={2:true,3:true,5:true};
- function isprime(n) {
- if(primes[n]) {
- return true;
- }
- for(var i=2;i<=n/2;i++) {
- if(n%i===0) {
- return false;
- }
- }
- primes[n]=true;
- return true;
- }
- var n=0;
- var i=0;
- while(n<=227000) {
- n=fib(i++);
- }
- var m=n;
- while(!isprime(m)) {
- m=fib(i++);
- }
- var divs=primedivisors(m+1);
- alert(divs.reduce(function(a,b) {
- return [a[0]+b[0],1]
- })[0]);
- </script>
Add Comment
Please, Sign In to add comment