首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图为一个程序编写脚本,其中列出数字加起来等于Python中的素数的数字。如何修复溢出错误?

试图为一个程序编写脚本,其中列出数字加起来等于Python中的素数的数字。如何修复溢出错误?
EN

Stack Overflow用户
提问于 2017-05-20 19:20:29
回答 1查看 254关注 0票数 1
代码语言:javascript
运行
复制
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范围内存在多少个整数,使它们的数字之和是素数?”

在搜索时,我看到这个范围会溢出,xrange会更有效率。当使用xrange时,会出现错误"OverflowError: Python太大,无法转换为C;“。

如何才能输出答案而没有错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-20 19:55:00

有人问了一个类似于python2.x的问题:Handling big numbers in code,这可能有助于更小的数字.

一般来说,这个通过Quora的答案是非常有用的:https://www.quora.com/How-large-can-Python-handle-big-number和其他人说的一样,它将取决于您有多少内存可用。

来自Quora的文章:

真正的限制取决于Python可以访问的内存量。如果它有1GB可供使用,那就相当于大约80000000008000000000位。因此,这样你就可以得到高达28000000028000000000的数字。如果我们可以使用泰坦超级计算机的600+ TiB的CPU内存专门做数字,我们可以一路走到大约22522252。太多了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44089954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档