Guest User

Untitled

a guest
Jun 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. <script>
  2. // Author: Dmitri Pavlenkov, 2010
  3.  
  4. Array.prototype.reduce=function(fn,init) {
  5. if(this.length===0) {
  6. return init;
  7. }
  8. var result=init;
  9. if(init) {
  10. result=fn(init,this[0]);
  11. } else {
  12. result=this[0];
  13. }
  14. for(var i=1;i<this.length;i++) {
  15. result=fn(result,this[i]);
  16. }
  17. return result;
  18. }
  19.  
  20.  
  21. var fibs=[0,1];
  22. function fib(n) {
  23. if(fibs.length<=n) {
  24. for(var i=fibs.length;i<=n;i++) {
  25. fibs[i]=fibs[i-1]+fibs[i-2];
  26. }
  27. }
  28. return fibs[n];
  29. }
  30.  
  31.  
  32. function primedivisors(n) {
  33. var divs=[];
  34. var res=1;
  35. for(var i=2;i<=n/2;i++) {
  36. if(res===n) {
  37. break;
  38. }
  39. if(!isprime(i)) {
  40. continue;
  41. }
  42. var p=0;
  43. var d=i;
  44. while(n%d===0) {
  45. d*=i;
  46. res*=i;
  47. p++;
  48. if(res===n) {
  49. break;
  50. }
  51. }
  52. if(p) {
  53. divs.push([i,p]);
  54. }
  55.  
  56. }
  57. if(!divs) {
  58. divs.push([n,1]);
  59. }
  60. return divs;
  61. }
  62.  
  63. primes={2:true,3:true,5:true};
  64. function isprime(n) {
  65. if(primes[n]) {
  66. return true;
  67. }
  68. for(var i=2;i<=n/2;i++) {
  69. if(n%i===0) {
  70. return false;
  71. }
  72. }
  73. primes[n]=true;
  74. return true;
  75. }
  76.  
  77.  
  78. var n=0;
  79. var i=0;
  80. while(n<=227000) {
  81. n=fib(i++);
  82. }
  83.  
  84. var m=n;
  85. while(!isprime(m)) {
  86. m=fib(i++);
  87. }
  88.  
  89. var divs=primedivisors(m+1);
  90.  
  91. alert(divs.reduce(function(a,b) {
  92. return [a[0]+b[0],1]
  93. })[0]);
  94.  
  95.  
  96. </script>
Add Comment
Please, Sign In to add comment