way to calculate 2**1000 without expanding it?

Gary Herron gherron at digipen.edu
Fri Sep 16 16:53:10 EDT 2011


On 09/16/2011 01:17 PM, Arnaud Delobelle wrote:
> On 16 September 2011 21:06, Ian Kelly<ian.g.kelly at gmail.com>  wrote:
>> On Fri, Sep 16, 2011 at 1:21 PM, zombie<thatiparthysreenivas at gmail.com>  wrote:
>>> Hi guys,
>>>          i am writing a program to sum up the digits of a number 2**1000?
>>> Is there a way/formula to do it without expanding it?
>> Possibly, but why worry about it?  It's only around 300 digits.
>>
>> Since this sounds like homework, I won't post the one-liner I used to
>> do it the brute-force way, but I will note that it takes about 200
>> microseconds to run on my laptop.
> Ah go on, let's make a codegolf contest out of it.
> My entry:
>
>>>> sum(map(int,str(2**1000)))
> 1366
>

Here's another one-liner using a generator instead of map:

     sum(int(c) for c in str(2**1000))

Gary Herron



-- 
Gary Herron, PhD.
Department of Computer Science
DigiPen Institute of Technology
(425) 895-4418




More information about the Python-list mailing list