I take it back. My answer is correct; I just don't have nearly enough digits of precision. And trying to run my program for N = 500,000,000 just made it crash after 40% completion. Maybe I'll split the difference and try something on the order of 50,000,000.
This is indeed an ideal task for parallel processing though.
Eh, there are some issues with a parallel processing implementation. Each process needs a place to store its results. You could either allocate a large array for them to put their results in, one per process, or have a lock and have them update it in mutex format. The former needs to be aggregated in serial afterwards, and the latter reduces a segment of the problem to serial execution, assuming all processes handle their tasks in the same amount of time, which of course they don't, but it will hinder them.
Something such as ray-tracing where the array *is* the final form for the data is more ideal, imho.
Edit: Huh, CS seems to have jacked the Math Problem thread. I have no issues with that.
Edit 2: Also, I'm pretty sure that a properly coded algorithm could find the exact answer handily without taking forever. I'm just too lazy to work on it.