qq_31663901
2016-09-24 12:50
采纳率: 66.7%
浏览 1.5k

c++中数据存储问题!!!

如何储存1000000000大小的int型数据?比如说我要找出100000000000内所有质数!找出的质数应该存储在什么地方?数组肯定不行,动态申请也办不到似乎怎么了办?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • blownewbee 2016-09-24 12:57
    已采纳

    如果要表示100000000000以内的数,用int肯定不行,起码是long。甚至long long。那么一个数字可能需要8个字节或更多。
    1000000000个数x8个字节,需要8GB以上的内存,你的编译器和操作系统都必须是x64的,而你的计算机必须有>8GB的内存。
    所以将这些数字放在内存中是不经济的,你可以考虑使用文件存储。

    点赞 打赏 评论
  • yunshouhu 2016-09-25 01:19

    整形表示不了这么大的数据,可以考虑使用字符串来表示,并进行和实现大数据的四则运算。

    点赞 打赏 评论
  • hello_bravo_ 2016-09-25 14:27

    可以试试外排序,然后一段一段的读进来查找,也可以用字符串的大数据

    点赞 打赏 评论
  • robin8624 2016-09-27 08:50

    现在的PC都支持int64,一些指令还支持int128,超过了就只能是大数运算库了。
    Java和C#都有原生的大数运算库,C/C++没有原生的有第三方的,要不就自己写一个。

    100000000000这个数其实并不大,不明白为什么会放不下。RSA256的Key肯定比这个要大,也没说要放到文件中处理。

    点赞 打赏 评论