Next semester, I intend to start doing research in combinatorics. I have used and fallen in love with Mac computers and Wolfram Mathematica 8, and I intend to get these for use with this project and in college. I will be a Physics and Mathematics double major. Because I have a limited budget, I was wondering which would take priority for my applications: Having a four core processor instead of a two core processor, or having a SSD instead of a hard drive?
For the applications you will be doing, 4 cores would be preferred over an SSD.
Mathematica specifically supports mutli-core processors, and scales extremely well. See here:
You would not expect that much difference from an SSD drive in math and physics applications, which are not processing gigabytes of data from disk.
In scoping your new computer requirements, I recommend you get your professors' recommendations on coping with combinatorial explosion. You will doubtless have to work some problems which have this side effect. If your intermediate storage requirements exceed your available main memory, your system will start disk memory swapping (thrashing), and even simple problems will take "forever" to finish.
When I've had to work such problems with Mathematica in past years, my motto was, "If you thrash, you're dead."
I'm offering this as a separate answer because none has mentioned the elephant on the couch yet:
CPU is impractical to change later on most Macs (anything other than a Mac Pro) but fast external storage can be added later if you have really huge datasets, which would be impractical to store on the internal drives anyway.
For anything that doesn't require high GB to TB of data, the CPUs will be more beneficial, and if you need high GB/TB of data, the SSD won't cut it either, and you'll need an external box.
My recommendation: 8GB of RAM and the fastest CPUs you can afford. If you need very fast disks later to process TB of data, buy an external box with a Thunderbolt interface. (The largest SSDs won't hold that much anyway)
If your tasks can be parallelized (and for mathematics/physics typically they can be) go with multiple cores and as much RAM as you can afford/will need. In general, the situation will be is you need lots of disk space to store old data (processed by various methods) and the IO parts of the calculation will be negligible compared to the CPU parts. I would possibly consider getting a good GPU you could program for serious computational needs; but this is probably overkill for your question.
To load 1GB of data from disk into a buffer (which can go to memory) takes roughly 10 seconds with a 7200rpm hard disk; and that's a one time cost for most calculations. Rarely will your complicated math calculations take just seconds (and if they do - the bottleneck is you interpreting the results and giving new tasks to run - not the IO speed). Its not at all out of the ordinary to have a computational bottleneck where the data is loaded into memory, and it would take one core 2 days to complete a task; but 4 cores could get it done in half a day. Now not having enough RAM and having to read/write RAM to disk will be a huge slow down (even using an SSD drive as swap).
As a rough guide; a random access read from RAM takes on the order of 10 ns; from an SSD ten thousand times slower than that (100 micro-s); and a hard disk is roughly 100 times slower than that (10 ms). So you really don't want to be doing random access reads from SSD or hard disk. Also for consecutive reads from disk (e.g., you are reading a file with the entire dataset into memory) hard disks won't perform as poorly.
If you're looking at MacBook Pros, I'd put screen size preference above all else. From what I can see, this effectively also defines the number of cores in the machine. Then max the RAM (third-party, perhaps.) Then look into a SSD. I'd leave the difference between 2.0GHz and 2.2GHz Core for the 15" model until the end. It's a relatively small difference in performance for the difference in price.