My daughter is doing some heavy number crunching and needs a faster computer. She currently has an i3 processor and 4 gbs of ram. These calculations are taking one to 1.5 hours. A fast processor or RAM, or both
We need a lot more information. There are several i3 processors - which one specifically is it? If you want processor recommendations we'll need to know the current chip. Also, what program is crunching the numbers? All number-crunching is not created equally.
If she's using heavily-multithreaded software then any of several processors will help. More cores and more threads is what you want. As examples, an i3-2100 has two cores and four threads, the i5-2500 has four cores and four threads, and the i7-2600 has four cores and eight threads. In programs that are multithreaded you get far more processing power out of a higher thread count than you do out of a higher clock speed.
In single or dual threaded applications (which often happens when people write their own programs) there is not much you can do to decrease your runtime except get a processor with a higher clock speed. Some i3 processors have clock speeds high enough where most upgrades won't make a difference. As a programmer and mathematician I will say at this point that if she's running a single threaded program then the best way to decrease runtime is to find/write a better program.
Some programs use a lot of i/o and need to read and write on the hard drive over and over again. For programs like these a faster hard drive is going to cut down on the runtime by a lot. SSD's are king in that area.
With 4GB of RAM it is rare that RAM will be the limiting factor in runtime. The only time RAM will slow down a program is if the virtual memory needed exceeds the amount of RAM you have. In this case the computer starts using the hard drive (it's called a page file) as extra RAM space. This will slow any program to a crawl, but like I said, 4GB is usually plenty.
The last thing I have to say is only marginally relevant. I spend a lot of my time writing programs to do large calculations and most often I'm thrilled when a program will run in under a week. If I could get most things to under two hours I could die happy. My only point is that sometimes programs just take a long time. A runtime of 1-2 hours doesn't mean the computer is too slow - it might just mean that the software takes a long time.