Advertisement
Guest User

Project Euler 003

a guest
Nov 22nd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const number = 600851475143;
  2. let factors = [];
  3. let reminder = number;
  4.  
  5. const sqrt = fun(n) {
  6.     if n < 2 {
  7.         return n;
  8.     }
  9.     let smallCandidate = sqrt(n/4) * 2;
  10.     let largeCandidate = smallCandidate + 1;
  11.     if largeCandidate * largeCandidate > n {
  12.         return smallCandidate;
  13.     } else {
  14.         return largeCandidate;
  15.     }
  16. };
  17.  
  18. loop reminder % 2 == 0 {
  19.     reminder = reminder / 2;
  20.     factors = push(factors, 2);
  21. }
  22.  
  23. const max = sqrt(reminder);
  24. let n = 3;
  25.  
  26. loop n < max {
  27.     loop reminder % n == 0 {
  28.         reminder = reminder / n;
  29.         factors = push(factors, n);
  30.     }
  31.     n = n + 2;
  32. }
  33. if reminder > 2 {
  34.     factors = push(factors, reminder);
  35. }
  36.  
  37. println("factors: ", factors);
  38.  
  39. println("the biggest factor of: ", number, ", is: ", factors[len(factors)-1]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement