just a quick comment.
4 resistors are enough, and the 40ma is not a real issue (only 4 segments can be using the same current source, and with 10ma you can still get good brightness) if using the code from "http://nootropicdesign.com/projectlab/2009/10/
(mentioned by jeremytsl).
in this code the relevant segments are turned on individually, and stays on for a short delay, and then turned off. this also answers the question embedded in the code for why there is a need for a delay.
"delay(1); // Don't understand why I Have to set a delay
also, if using the red 7-segment display, which is rated 2.1V and 20ma a 330 or 220 Ohm resistors are better.
if using a code that lights all the segments in a number at the same time - then the comments are accurate and segments should each have a resistor and 40ma Arduino pin output should be taken under consideration.
thanks everyone for your comments!