我正在研究大半素数的因式分解。我正在研究 Java,但我也很好奇探索其他选择。我知道 C++ Boost 多精度支持大数。
我从Boost页面找到了以下信息:
typedef number<cpp_int_backend<128, 128, unsigned_magnitude, unchecked, void> > uint128_t;
typedef number<cpp_int_backend<256, 256, unsigned_magnitude, unchecked, void> > uint256_t;
typedef number<cpp_int_backend<512, 512, unsigned_magnitude, unchecked, void> > uint512_t;
typedef number<cpp_int_backend<1024, 1024, unsigned_magnitude, unchecked, void> > uint1024_t;
Run Code Online (Sandbox Code Playgroud)
我的问题是,cpp_int类型的最大数量限制是多少?在 Java 中,BigInteger 最多支持 2^Integer.MAX_VALUE。
谢谢。
在特定的社交网络中,好友是由系统自动分配给用户的,用户不能自行添加自己选择的好友。当前社交网络上有 N 个用户,标记为 2 到 N+1。对于每一个用户(其中 i 的范围为 2 到 N+1),系统将所有标记为 i 的倍数的用户分配为该用户的朋友(如果可能的话)。有一天,社交网络的所有用户聚集在一起开会并形成群组,使得群组中的每个人都是该群组中每个其他人的直接朋友或朋友的朋友。
示例:输入:10
输出:3
解释:
将形成三组:{2, 3, 4, 5, 6, 8, 9, 10}, {7} 和 {11}
在我的程序中,我有一个HashSet<HashSet<Integer>>,然后在我的程序结束时,我使用以下语句打印内容,
System.out.println("Groups: " + allSets.toString());
Run Code Online (Sandbox Code Playgroud)
它向我展示了这一点,
Groups: [[17], [19], [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21], [11], [13]]
Run Code Online (Sandbox Code Playgroud)
我的答案是可以的,但我想按顺序查看它,
Groups: [[2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21], [11], [13], [17], [19]]
Run Code Online (Sandbox Code Playgroud)
我将按排序顺序插入所有单编号集,我必须在最后插入大集。
我试过,TreeSet但它不起作用,(got some exceptions)。
我使用List而不是解决了我的问题Set,
我想知道,有没有办法通过使用获得相同的有序输出Set?