A faster way to compute the largest prime factor Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Project Euler #3 - largest prime factorFaster way to determine largest prime factorx64 Assembly - checking for largest prime factorProject Euler #3 (Largest prime factor) in SwiftProject Euler 3: Getting the largest prime factor of a numberVery slow Project Euler Q3 (largest prime factor of a large number)Project Euler 3: Largest prime factorLargest prime factor of a given numberProject Euler 3 - Largest prime factorEuler problem 3: largest prime factor of the numberWork out largest prime factor of a number

What *exactly* is electrical current, voltage, and resistance?

How to not starve gigantic beasts

"Rubric" as meaning "signature" or "personal mark" -- is this accepted usage?

What is the least dense liquid under normal conditions?

I preordered a game on my Xbox while on the home screen of my friend's account. Which of us owns the game?

Why does the Cisco show run command not show the full version, while the show version command does?

What do you call the part of a novel that is not dialog?

Did the Roman Empire have penal colonies?

Has a Nobel Peace laureate ever been accused of war crimes?

Check if a string is entirely made of the same substring

Is accepting an invalid credit card number a security issue?

The art of proof summarizing. Are there known rules, or is it a purely common sense matter?

What is the best way to deal with NPC-NPC combat?

How can I wire a 9-position switch so that each position turns on one more LED than the one before?

My admission is revoked after accepting the admission offer

Implementing 3DES algorithm in Java: is my code secure?

c++ diamond problem - How to call base method only once

Are there moral objections to a life motivated purely by money? How to sway a person from this lifestyle?

How would this chord from "Rocket Man" be analyzed?

What is it called when you ride around on your front wheel?

What's the difference between using dependency injection with a container and using a service locator?

Seek and ye shall find

What is a 'Key' in computer science?

With indentation set to `0em`, when using a line break, there is still an indentation of a size of a space



A faster way to compute the largest prime factor



Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Project Euler #3 - largest prime factorFaster way to determine largest prime factorx64 Assembly - checking for largest prime factorProject Euler #3 (Largest prime factor) in SwiftProject Euler 3: Getting the largest prime factor of a numberVery slow Project Euler Q3 (largest prime factor of a large number)Project Euler 3: Largest prime factorLargest prime factor of a given numberProject Euler 3 - Largest prime factorEuler problem 3: largest prime factor of the numberWork out largest prime factor of a number



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1












$begingroup$


I am self-learning js and came across this problem(#3) from the Euler Project




The prime factors of 13195 are 5, 7, 13 and 29.



What is the largest prime factor of the number 600851475143 ?




Logic:



  • Have an array primes to store all the prime numbers less than number


  • Loop through the odd numbers only below number to check for primes using i



  • Check if i is divisible by any of the elements already in primes.



    • If yes, isPrime = false and break the for loop for j by j=primesLength

    • If not, isPrime = true



  • If isPrime == true then add i to the array primes and check if number%i == 0



    • If number%i == 0% update the value of factor as factor = i


  • Return factor after looping through all the numbers below number


My code:






function problem3(number)
let factor = 1;
let primes = [2]; //array to store prime numbers

for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
let isPrime = true;
let primesLength= primes.length;

for(let j=0; j< primesLength; j++)
if(i%primes[j]==0)
isPrime = false;
j=primesLength; //to break the for loop



if(isPrime == true)
primes.push(i);
if(number%i == 0)
factor = i;



return factor;


console.log(problem3(600851475143));





It is working perfectly for small numbers, but is quite very slow for 600851475143. What should I change in this code to make the computation faster?










share|improve this question









New contributor




Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$


















    1












    $begingroup$


    I am self-learning js and came across this problem(#3) from the Euler Project




    The prime factors of 13195 are 5, 7, 13 and 29.



    What is the largest prime factor of the number 600851475143 ?




    Logic:



    • Have an array primes to store all the prime numbers less than number


    • Loop through the odd numbers only below number to check for primes using i



    • Check if i is divisible by any of the elements already in primes.



      • If yes, isPrime = false and break the for loop for j by j=primesLength

      • If not, isPrime = true



    • If isPrime == true then add i to the array primes and check if number%i == 0



      • If number%i == 0% update the value of factor as factor = i


    • Return factor after looping through all the numbers below number


    My code:






    function problem3(number)
    let factor = 1;
    let primes = [2]; //array to store prime numbers

    for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
    let isPrime = true;
    let primesLength= primes.length;

    for(let j=0; j< primesLength; j++)
    if(i%primes[j]==0)
    isPrime = false;
    j=primesLength; //to break the for loop



    if(isPrime == true)
    primes.push(i);
    if(number%i == 0)
    factor = i;



    return factor;


    console.log(problem3(600851475143));





    It is working perfectly for small numbers, but is quite very slow for 600851475143. What should I change in this code to make the computation faster?










    share|improve this question









    New contributor




    Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$














      1












      1








      1





      $begingroup$


      I am self-learning js and came across this problem(#3) from the Euler Project




      The prime factors of 13195 are 5, 7, 13 and 29.



      What is the largest prime factor of the number 600851475143 ?




      Logic:



      • Have an array primes to store all the prime numbers less than number


      • Loop through the odd numbers only below number to check for primes using i



      • Check if i is divisible by any of the elements already in primes.



        • If yes, isPrime = false and break the for loop for j by j=primesLength

        • If not, isPrime = true



      • If isPrime == true then add i to the array primes and check if number%i == 0



        • If number%i == 0% update the value of factor as factor = i


      • Return factor after looping through all the numbers below number


      My code:






      function problem3(number)
      let factor = 1;
      let primes = [2]; //array to store prime numbers

      for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
      let isPrime = true;
      let primesLength= primes.length;

      for(let j=0; j< primesLength; j++)
      if(i%primes[j]==0)
      isPrime = false;
      j=primesLength; //to break the for loop



      if(isPrime == true)
      primes.push(i);
      if(number%i == 0)
      factor = i;



      return factor;


      console.log(problem3(600851475143));





      It is working perfectly for small numbers, but is quite very slow for 600851475143. What should I change in this code to make the computation faster?










      share|improve this question









      New contributor




      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $endgroup$




      I am self-learning js and came across this problem(#3) from the Euler Project




      The prime factors of 13195 are 5, 7, 13 and 29.



      What is the largest prime factor of the number 600851475143 ?




      Logic:



      • Have an array primes to store all the prime numbers less than number


      • Loop through the odd numbers only below number to check for primes using i



      • Check if i is divisible by any of the elements already in primes.



        • If yes, isPrime = false and break the for loop for j by j=primesLength

        • If not, isPrime = true



      • If isPrime == true then add i to the array primes and check if number%i == 0



        • If number%i == 0% update the value of factor as factor = i


      • Return factor after looping through all the numbers below number


      My code:






      function problem3(number)
      let factor = 1;
      let primes = [2]; //array to store prime numbers

      for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
      let isPrime = true;
      let primesLength= primes.length;

      for(let j=0; j< primesLength; j++)
      if(i%primes[j]==0)
      isPrime = false;
      j=primesLength; //to break the for loop



      if(isPrime == true)
      primes.push(i);
      if(number%i == 0)
      factor = i;



      return factor;


      console.log(problem3(600851475143));





      It is working perfectly for small numbers, but is quite very slow for 600851475143. What should I change in this code to make the computation faster?






      function problem3(number)
      let factor = 1;
      let primes = [2]; //array to store prime numbers

      for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
      let isPrime = true;
      let primesLength= primes.length;

      for(let j=0; j< primesLength; j++)
      if(i%primes[j]==0)
      isPrime = false;
      j=primesLength; //to break the for loop



      if(isPrime == true)
      primes.push(i);
      if(number%i == 0)
      factor = i;



      return factor;


      console.log(problem3(600851475143));





      function problem3(number)
      let factor = 1;
      let primes = [2]; //array to store prime numbers

      for(let i=3; i<number; i=i+2) //Increment i by 2 to loop through only odd numbers
      let isPrime = true;
      let primesLength= primes.length;

      for(let j=0; j< primesLength; j++)
      if(i%primes[j]==0)
      isPrime = false;
      j=primesLength; //to break the for loop



      if(isPrime == true)
      primes.push(i);
      if(number%i == 0)
      factor = i;



      return factor;


      console.log(problem3(600851475143));






      javascript beginner programming-challenge time-limit-exceeded primes






      share|improve this question









      New contributor




      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 1 hour ago









      200_success

      131k17157422




      131k17157422






      New contributor




      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 1 hour ago









      EagleEagle

      1085




      1085




      New contributor




      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Eagle is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          2 Answers
          2






          active

          oldest

          votes


















          3












          $begingroup$

          There are many questions about Project Euler 3 on this site already. The trick is to pick an algorithm that…



          • Reduces n whenever you find a factor, so that you don't need to consider factors anywhere near as large as 600851475143

          • Only finds prime factors, and never composite factors, so that you never need to explicitly test for primality.

          Your algorithm suffers on both criteria: the outer for loop goes all the way up to 600851475143 (which is insane), and you're testing each of those numbers for primality (which is incredibly computationally expensive).






          share|improve this answer









          $endgroup$




















            1












            $begingroup$

            The first problem is that you are trying to find all prime numbers under number. The number of prime numbers under x is approximately x/ln(x) which is around 22153972243.4 for our specific value of x



            This is way too big ! So even if you where capable of obtaining each of these prime numbers in constant time it would take too much time.



            This tells us this approach is most likely unfixable.






            share|improve this answer








            New contributor




            Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.






            $endgroup$













              Your Answer






              StackExchange.ifUsing("editor", function ()
              StackExchange.using("externalEditor", function ()
              StackExchange.using("snippets", function ()
              StackExchange.snippets.init();
              );
              );
              , "code-snippets");

              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "196"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader:
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              ,
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );






              Eagle is a new contributor. Be nice, and check out our Code of Conduct.









              draft saved

              draft discarded


















              StackExchange.ready(
              function ()
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f219063%2fa-faster-way-to-compute-the-largest-prime-factor%23new-answer', 'question_page');

              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              3












              $begingroup$

              There are many questions about Project Euler 3 on this site already. The trick is to pick an algorithm that…



              • Reduces n whenever you find a factor, so that you don't need to consider factors anywhere near as large as 600851475143

              • Only finds prime factors, and never composite factors, so that you never need to explicitly test for primality.

              Your algorithm suffers on both criteria: the outer for loop goes all the way up to 600851475143 (which is insane), and you're testing each of those numbers for primality (which is incredibly computationally expensive).






              share|improve this answer









              $endgroup$

















                3












                $begingroup$

                There are many questions about Project Euler 3 on this site already. The trick is to pick an algorithm that…



                • Reduces n whenever you find a factor, so that you don't need to consider factors anywhere near as large as 600851475143

                • Only finds prime factors, and never composite factors, so that you never need to explicitly test for primality.

                Your algorithm suffers on both criteria: the outer for loop goes all the way up to 600851475143 (which is insane), and you're testing each of those numbers for primality (which is incredibly computationally expensive).






                share|improve this answer









                $endgroup$















                  3












                  3








                  3





                  $begingroup$

                  There are many questions about Project Euler 3 on this site already. The trick is to pick an algorithm that…



                  • Reduces n whenever you find a factor, so that you don't need to consider factors anywhere near as large as 600851475143

                  • Only finds prime factors, and never composite factors, so that you never need to explicitly test for primality.

                  Your algorithm suffers on both criteria: the outer for loop goes all the way up to 600851475143 (which is insane), and you're testing each of those numbers for primality (which is incredibly computationally expensive).






                  share|improve this answer









                  $endgroup$



                  There are many questions about Project Euler 3 on this site already. The trick is to pick an algorithm that…



                  • Reduces n whenever you find a factor, so that you don't need to consider factors anywhere near as large as 600851475143

                  • Only finds prime factors, and never composite factors, so that you never need to explicitly test for primality.

                  Your algorithm suffers on both criteria: the outer for loop goes all the way up to 600851475143 (which is insane), and you're testing each of those numbers for primality (which is incredibly computationally expensive).







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 1 hour ago









                  200_success200_success

                  131k17157422




                  131k17157422























                      1












                      $begingroup$

                      The first problem is that you are trying to find all prime numbers under number. The number of prime numbers under x is approximately x/ln(x) which is around 22153972243.4 for our specific value of x



                      This is way too big ! So even if you where capable of obtaining each of these prime numbers in constant time it would take too much time.



                      This tells us this approach is most likely unfixable.






                      share|improve this answer








                      New contributor




                      Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.






                      $endgroup$

















                        1












                        $begingroup$

                        The first problem is that you are trying to find all prime numbers under number. The number of prime numbers under x is approximately x/ln(x) which is around 22153972243.4 for our specific value of x



                        This is way too big ! So even if you where capable of obtaining each of these prime numbers in constant time it would take too much time.



                        This tells us this approach is most likely unfixable.






                        share|improve this answer








                        New contributor




                        Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                        Check out our Code of Conduct.






                        $endgroup$















                          1












                          1








                          1





                          $begingroup$

                          The first problem is that you are trying to find all prime numbers under number. The number of prime numbers under x is approximately x/ln(x) which is around 22153972243.4 for our specific value of x



                          This is way too big ! So even if you where capable of obtaining each of these prime numbers in constant time it would take too much time.



                          This tells us this approach is most likely unfixable.






                          share|improve this answer








                          New contributor




                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






                          $endgroup$



                          The first problem is that you are trying to find all prime numbers under number. The number of prime numbers under x is approximately x/ln(x) which is around 22153972243.4 for our specific value of x



                          This is way too big ! So even if you where capable of obtaining each of these prime numbers in constant time it would take too much time.



                          This tells us this approach is most likely unfixable.







                          share|improve this answer








                          New contributor




                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          share|improve this answer



                          share|improve this answer






                          New contributor




                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          answered 45 mins ago









                          Jorge FernándezJorge Fernández

                          1645




                          1645




                          New contributor




                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.





                          New contributor





                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






                          Jorge Fernández is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.




















                              Eagle is a new contributor. Be nice, and check out our Code of Conduct.









                              draft saved

                              draft discarded


















                              Eagle is a new contributor. Be nice, and check out our Code of Conduct.












                              Eagle is a new contributor. Be nice, and check out our Code of Conduct.











                              Eagle is a new contributor. Be nice, and check out our Code of Conduct.














                              Thanks for contributing an answer to Code Review Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid


                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.

                              Use MathJax to format equations. MathJax reference.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function ()
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f219063%2fa-faster-way-to-compute-the-largest-prime-factor%23new-answer', 'question_page');

                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Disable / Remove link to Product Items in Cart Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How can I limit products that can be bought / added to cart?Remove item from cartHide “Add to Cart” button if specific products are already in cart“Prettifying” the custom options in cart pageCreate link in cart sidebar to view all added items After limit reachedLink products together in checkout/cartHow to Get product from cart and add it againHide action-edit on cart page if simple productRemoving Cart items - ObserverRemove wishlist items when added to cart

                              Helsingin valtaus Sisällysluettelo Taustaa | Yleistä sotatoimista | Osapuolet | Taistelut Helsingin ympäristössä | Punaisten antautumissuunnitelma | Taistelujen kulku Helsingissä | Valtauksen jälkeen | Tappiot | Muistaminen | Kirjallisuutta | Lähteet | Aiheesta muualla | NavigointivalikkoTeoksen verkkoversioTeoksen verkkoversioGoogle BooksSisällissota Helsingissä päättyi tasan 95 vuotta sittenSaksalaisten ylivoima jyräsi punaisen HelsinginSuomalaiset kuvaavat sotien jälkiä kaupungeissa – katso kuvat ja tarinat tutuilta kulmiltaHelsingin valtaus 90 vuotta sittenSaksalaiset valtasivat HelsinginHyökkäys HelsinkiinHelsingin valtaus 12.–13.4. 1918Saksalaiset käyttivät ihmiskilpiä Helsingin valtauksessa 1918Teoksen verkkoversioTeoksen verkkoversioSaksalaiset hyökkäävät Etelä-SuomeenTaistelut LeppävaarassaSotilaat ja taistelutLeppävaara 1918 huhtikuussa. KapinatarinaHelsingin taistelut 1918Saksalaisten voitonparaati HelsingissäHelsingin valtausta juhlittiinSaksalaisten Helsinki vuonna 1918Helsingin taistelussa kaatuneet valkokaartilaisetHelsinkiin haudatut taisteluissa kaatuneet punaiset12.4.1918 Helsingin valtauksessa saksalaiset apujoukot vapauttavat kaupunginVapaussodan muistomerkkejä Helsingissä ja pääkaupunkiseudullaCrescendo / Vuoden 1918 Kansalaissodan uhrien muistomerkkim

                              Adjektiivitarina Tarinan tekeminen | Esimerkki: ennen | Esimerkki: jälkeen | Navigointivalikko