Advertisement
MonroCoury

EU21

Nov 24th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var div_sum = function(num)
  2. {
  3.     var s = 0;
  4.     for (var i=1; i <= (num / 2) + 1; i++)
  5.     {
  6.         if (num % i == 0)
  7.         {
  8.             s += i;
  9.         }
  10.     }
  11.  
  12.     return s;
  13. };
  14.  
  15. var sum = function(seq)
  16. {
  17.     var res = 0;
  18.  
  19.     for (var item of seq)
  20.     {
  21.         res += item;
  22.     }
  23.  
  24.     return res;
  25. };
  26.  
  27. var getAmicSet = function(upperEnd)
  28. {
  29.     var amic_nums = new Set();
  30.  
  31.     for (var i=1; i < upperEnd; i++)
  32.     {
  33.         if (!amic_nums.has(i))
  34.         {
  35.             var d_i = div_sum(i);
  36.             var d_d_i = div_sum(d_i);
  37.             if (d_d_i == i && d_i != i)
  38.             {
  39.                 amic_nums.add(i);
  40.                 amic_nums.add(d_i);
  41.             }
  42.         }
  43.     }
  44.  
  45.     return sum(amic_nums.keys());
  46.  
  47. };
  48.  
  49. var solveEU21 = function()
  50. {
  51.     var start = performance.now();
  52.     var solution = getAmicSet(10000);
  53.     var elapsed = performance.now() - start;
  54.  
  55.     return [solution, elapsed];
  56. };
  57.  
  58. var res = solveEU21();
  59.  
  60. document.writeln("Solution is: " + res[0] + ". Took " + res[1] + ". milliseconds.");
  61. document.writeln("<br />");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement