def isPrime(num):
s=0
for j in range (1, num):
if(num%j==0):
s=s+1
if(s>1):
break
return(s)
a = 10**20;
b = 10**400;
for i in xrange(a, b):
if(isPrime(i)==1 and isPrime(sum(int(x) for x in str(i)))==1):
print('Sum of all digits of', i, 'is', sum(int(x) for x in str(i)))
Моя цель - вывести все числа в пределах 10 ^ 20 и 10 ^ 400, цифры которых в сумме дают простое число, чтобы ответить на вопрос: «Сколько существует целых чисел в диапазоне [10 ^ 20, 10 ^ 400], таких что сумма их цифр - простое число? "
Во время поиска в Google я прочитал, что диапазон будет переполнен, и что xrange будет более эффективным. Когда использовался xrange, возникала ошибка «OverflowError: Python int слишком большой для преобразования в C long;» имеет место.
Как я могу вывести ответ без ошибок?