今天我遇到了一个有趣的问题。作为我熟练掌握Objective-c的练习的一部分,当我坐在数学课上时,我会为每个问题编写程序,希望增加我的数学和编程能力。
然而,今天我遇到了一个问题。其中一个问题是“查找最大的素数10564245(< - 示例编号)可被”整除“
所以,我进去制作了这个节目。我做了要检查的值的循环,然后开始编码它检查提醒的部分,如果它是0,它会记录它,如果不是,它会跳过它。
但是,由于该数字太大而不能成为int
,因此必须为double
。当我尝试插入该号码时,当我想使用%
运算符时,程序给了我错误。如果你有一个非常大的数字,有没有办法找到剩余的?
由于
错误:Invalid operands to binary expression
编辑:已解决!
我从每个答案中拿了一点。我们有fmod功能,但我最终使用的是long
而不是int
,我不知道为什么我没有想到原来的
答案 0 :(得分:5)
使用fmod()。
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
double a = 77879878978942312315687897;
double b = 10;
printf("%.f",fmod(a, b));
}
答案 1 :(得分:1)
对于整数值,双精度值并不精确,因此可能不应该用于此类事情。相反,您可以使用long into甚至long long int来进行计算