gcc 编译通过,运行时提示floating point exception
求大神帮忙分析,源代码如下#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
int main()
{
long i, max = 0, a = 600851475143;
for (i = 0;i < a; i++)
{
if(a % i == 0 && i % 2 != 0)
{
max = i;
a = a / i;
printf("%ld\t",max);
}
}
printf("最大质因数是%ld\n",max);
getchar();
return (0);
}
这是带你学C带你飞的考试题 类型用的不对吧,改成 long long 试试看。。。 像这种的大数据c语言不是太好弄 Dr丶温 发表于 2018-3-4 07:38
类型用的不对吧,改成 long long 试试看。。。
我实在Ubuntu64位下编译的,long是8个字节,可以放这么大的数据。 angus 发表于 2018-3-4 14:46
我实在Ubuntu64位下编译的,long是8个字节,可以放这么大的数据。
c语言的规定是死的,1字节就是8位,跟机器多少位没关系 alltolove 发表于 2018-3-4 15:03
c语言的规定是死的,1字节就是8位,跟机器多少位没关系
C:\Users\M\Desktop\微信图片_20180304152151.png alltolove 发表于 2018-3-4 15:03
c语言的规定是死的,1字节就是8位,跟机器多少位没关系
您看一下,这个是实测结果,long 8byte 问题已解决,for循环初始值应该设置为1,如果为0,第一句a % i就不成立,谢谢大家
页:
[1]