Soma de dígitos em um número muito grande usando c ++ [fechado]

Estou tentando resolver esse problema específico:Projeto Euler # 16:

2 ^ 15 = 32768 e a soma dos seus dígitos é 3 + 2 + 7 + 6 + 8 = 26.
Qual é a soma dos dígitos do número 2 ^ 1000?

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
   int num;
   cin >> num;
   long double n = pow(2, num);
   cout << fixed << n << endl;
   int sum = 0;
   while(n != 0.0)
   {
      sum = sum + fmod(n, 10);
      n = floor(n/10);
   }
   cout << sum << endl;
}

A saída quando a entrada do usuário é 1000 é:

1181

Entretanto, a internet menciona a resposta correta a ser1366 ao invés de1181 Eu tenho.

questionAnswers(2)

yourAnswerToTheQuestion