C++ c+中long-long上的模运算+;

C++ c+中long-long上的模运算+;,c++,primes,prime-factoring,C++,Primes,Prime Factoring,我正在研究大数的素因式分解(主要是,。我需要对声明为long long的数使用模。每次我尝试对那个巨大的数进行模化时,我都会得到一个浮点异常。任何帮助都将不胜感激。谢谢 我已经通过gdb运行了这个程序,看看发生了什么。下面是我的代码。这是一个非常粗略的逻辑。请不要给我这个问题的答案。。我很乐意接受帮助,让它变得更好,只是请不要给我直截了当的答案。谢谢:) 长因子(长数){ 字符串br=“\n\r”; 长x=0; /*此模数变量是一种尝试 将答案移动到一个长容器中 看看这是否解决了我的浮点异常,

我正在研究大数的素因式分解(主要是,。我需要对声明为long long的数使用模。每次我尝试对那个巨大的数进行模化时,我都会得到一个浮点异常。任何帮助都将不胜感激。谢谢

我已经通过gdb运行了这个程序,看看发生了什么。下面是我的代码。这是一个非常粗略的逻辑。请不要给我这个问题的答案。。我很乐意接受帮助,让它变得更好,只是请不要给我直截了当的答案。谢谢:)

长因子(长数){
字符串br=“\n\r”;
长x=0;
/*此模数变量是一种尝试
将答案移动到一个长容器中
看看这是否解决了我的浮点异常,
没有*/
长模量;

虽然(x不要尝试mod by 0,它是未定义的!这样做将导致被零除的错误

long x = 0;
modulus = number % x; // x is 0 here and thus not valid
我想对我的答案作一点扩展

模0在大多数系统中是未定义的,尽管有些系统将其定义为a

long x = 1 ;

避免被零除。

什么编译器?什么平台?@David:这有什么关系?任何mod 0都会给我使用过的所有编译器一个例外。@Andrew好吧,这当然是一个令人信服的论点!!如果
number
不能被
2
除,那么
number/x
也不能。测试所有小素数我会再重复一遍,因为每个递归级别都没有效率…*说不出话来*不敢相信我没有看到。我是世界上最大的白痴。因为你问它是ubuntu natty Narhall上的g++(gcc)。谢谢。我不敢相信我没有看到,哦,好吧。
long x = 1 ;