Project Euler Problem 16 Solution

2^(15) = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.

What is the sum of the digits of the number 2^(1000)?

My solution in Ruby:

sum, number = 0, 2**1000
str = number.to_s
y = str.scan(/./)
y.each do |c|
	sum += c.to_i
end
puts sum

One Reply to “Project Euler Problem 16 Solution”

  1. Here is another solution in Java

    **
    *Author : Vlad
    *Website: http://www.mycoding.net
    *Answer: 1366
    */
    import java.math.BigInteger;
    public class Euler16 {

    public static void main(String[] args) {
    int power = 1;
    BigInteger expo = new BigInteger(“2”);
    BigInteger num = new BigInteger(“2”);
    while(power < 1000){
    expo = expo.multiply(num);
    power++;
    }
    System.out.println(expo); //Printing the value of 2^1000
    int sum = 0;
    char[] expoarr = expo.toString().toCharArray();
    int max_count = expoarr.length;
    int count = 0;
    while(count<max_count){ //While loop to calculate the sum of digits
    sum = sum + (expoarr[count]-48);
    count++;
    }
    System.out.println(sum);
    }
    }

Leave a Reply

Your email address will not be published. Required fields are marked *