This question already has an answer here:
I am new, but have a big idea about bitcoin.
There is a distributed computing project known as Fold at Home. What if its software were used for the generation of something instead of for a menial, useless task? Fold at home distributes datapackets that need to be worked on by computers. Once computers finish the work, they send a report of the data back to the host.
What if Bitcoin mining were, instead, Folding at home? if the programs could be made compatible, then bitcoin mining would also be donating something to a good cause.