我试图在C++变量中放置一个大数字.号码是600851475143
我尝试了unsigned long long int但是错误地说它常量太大了.然后我尝试了一个名为BigInt的bigInt库 - > http://mattmccutchen.net/bigint/
问题是我无法编译代码,因为我收到很多关于lib的错误.
未定义的引用`BigInteger :: BigInteger(int)'< - 很多这些.
到目前为止,这是我的代码:
#include "string" #include "iostream" #include "bigint/NumberlikeArray.hh" #include "bigint/BigUnsigned.hh" #include "bigint/BigInteger.hh" #include "bigint/BigIntegerAlgorithms.hh" #include "bigint/BigUnsignedInABase.hh" #include "bigint/BigIntegerUtils.hh" using namespace std; int main() { //unsigned long int num = 13195; //unsigned long long int num = 600851475143; BigInteger num = 13195; int divider = 2; //num = 600851475143; while (1) { if ((num % divider) == 0) { cout << divider << '\n'; num /= divider; } else divider++; if (num == 1) break; } }
如果我放一个较小的数字并且不使用BigInt lib,那么这个程序运行正常.任何帮助将不胜感激:D
您可以通过后缀L
指定整数文字.您可以使用后缀LL指定整数文字长.
#includeint main() { long long num = 600851475143LL; std::cout << num; }
数字是600851475143对于long long int来说不是太大但是在使用long long常量时需要使用LL后缀(ULL用于unsigned long long int):
unsigned long long int num = 600851475143ULL;