Created
April 4, 2017 17:03
-
-
Save dcbuild3r/6e95f1eccefea69c8c8a99714af5eb0d to your computer and use it in GitHub Desktop.
FCC intermediate algorithm challenges - Sum All Primes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function sumPrimes(num) { | |
| // stores num for later addition to sum of primes | |
| var originalNum = num; | |
| // array that will store the prime numbersof the array | |
| var primeArrayEnd = []; | |
| // finds what primes is num divisible by (it should) | |
| function isPrime(num) { | |
| var primeArray = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]; | |
| // loops that runs until i is not less than i | |
| for (var i = 0; i < num; i++){ | |
| // if num is prime, return num | |
| if(num == primeArray[i]){ | |
| // and push that number to primeArrayEnd | |
| primeArrayEnd.push(primeArrayEnd[i]); | |
| num = primeArray[i]; | |
| } | |
| // if num is divisible by any of the primes and gives 0, do this | |
| else if(num % primeArray[i] === 0){ | |
| // pushes the prime number it is equal to to the array of primes to Sum | |
| primeArrayEnd.push(primeArray[i]); | |
| // num = previous num divided by the prime it is equal to | |
| num = num / primeArray[i]; | |
| } | |
| return primeArrayEnd; | |
| } | |
| } | |
| // sums the array of primes | |
| var sumOfPrimes = primeArrayEnd.reduce(function(a, b) { return a + b; }, 0); | |
| // sums the sum of numbers with the original inputted num | |
| var total = sumOfPrimes + num; | |
| return total; | |
| } | |
| sumPrimes(17); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment