模数为双打

时间:2009-12-16 13:50:14

标签: c math

如果一个大整数(我的意思是20位......)是素数,我需要解决。

我正在尝试使用强力方法,但(当然)我需要使用双打来包含原始数字。但是,模运算符(%)是一个整数运算符 - 因此对我来说没用!

3 个答案:

答案 0 :(得分:18)

这是不可能的,双倍只有15位有效数字。在BigInt class.

中讨论了here. C具体的实现

答案 1 :(得分:3)

由于double数据类型存储为缩放到某个2的幂的小数值,并且因为它只有15个十进制数字的精度,所以存储为double的20位数字总是可以被2整除,并且因此,不是素数。

答案 2 :(得分:1)

您是否在C标准库中寻找fmod?或fmodl可能long double