如果一个大整数(我的意思是20位......)是素数,我需要解决。
我正在尝试使用强力方法,但(当然)我需要使用双打来包含原始数字。但是,模运算符(%)是一个整数运算符 - 因此对我来说没用!
答案 0 :(得分:18)
这是不可能的,双倍只有15位有效数字。在BigInt class.
中讨论了here. C具体的实现答案 1 :(得分:3)
由于double数据类型存储为缩放到某个2的幂的小数值,并且因为它只有15个十进制数字的精度,所以存储为double的20位数字总是可以被2整除,并且因此,不是素数。
答案 2 :(得分:1)
您是否在C标准库中寻找fmod
?或fmodl
可能long double
?