Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Project Euler - What you've learned

  1. Sep 16, 2009 #1
    So I registered on http://projecteuler.net/" and I must say: it's quite addictive!
    I didn't expect it to be that much fun.

    I'd like to share what things I've learned from solving the problems:

    - When solving a problem you get access to a thread. I was impressed
    how different the approaches are. People use "crazy languages" like K where
    the code looks like this: */_*a@&1000=+/'a:b,'(_sqrt+/)'b*b:,/n,/:'1+!:'n:!1000

    - http://en.wikipedia.org/wiki/Memoization" [Broken]: Use results that you've calculated before

    - Using http://psyco.sourceforge.net/" [Broken] (a Python compiler) improved the Python performance of one my programs by a factor of 4.

    - C++ is much faster than Python. But Python can handle really big numbers.
    I will probably have to learn using http://gmplib.org/" [Broken].

    - Java is fast. But the BigInteger datatype is slow (maybe I used it in the wrong way?) and hard to use :frown:

    What did you learn (for example what kind of techniques boosted the speed
    of your programs)?
    What programming languages do you use and prefer?
    Last edited by a moderator: May 4, 2017
  2. jcsd
  3. Nov 22, 2009 #2
    Hi, I registered in spoj.pl , www.topcoder.com[/url] , [url]www.codechef.com[/URL], and many acm judges ... i am chandubaba everywhere. Read the book "introduction to algorithms" by cormen, awesome! Very good for all these sites. But i am not there in project euler ... i am not familiar with gcj stuff. Also we need to do a lot of math (learn it fun way, ie not preparing for exam but for fun)... dynamic programming and graph theory seems to be everywhere at the elementary level.
    Last edited by a moderator: Apr 24, 2017
  4. Nov 22, 2009 #3
    I learned:
    C can handle bigger numbers than C++
    Many algorithms are already better implemented than I ever could, especially in Mathematica
    Thinking about a problem first can reduce the time needed to get the answer significantly
  5. Dec 11, 2009 #4
    Last edited by a moderator: Apr 24, 2017
  6. Dec 18, 2009 #5
    There are larger int objects in C++ as well, however for project euler I can recommend vectorized python (numpy).
  7. Dec 18, 2009 #6


    User Avatar
    Science Advisor
    Homework Helper

    I did it in Pari. It makes most of the problems trivial -- though I'll admit it's pretty bad at string manipulation.
  8. Dec 22, 2009 #7
    Project euler taught me the hard way about algorithm efficiency...
  9. Jan 15, 2010 #8
    I learned that pretty much everything I ever need to implement has been implemented by an open source project somewhere along the line...
  10. Aug 21, 2010 #9
    Edgardo whats your handle in topcoder?
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook