我需要找到
13195 的质因数是 5、7、13 和 29。
/*最大的是377。*/
数字 600851475143 的最大质因数是多少?
#include<stdio.h>
int main()
{
int i, j = 0;
/*Code works really fine for 13195 or 26*/
long value, large = 600851475143 /*13195*/;
for(value = (large - 1) ; value >= 3; value--)
{
if(large % value == 0)
{
/*printf("I am here \n");*/
if((value % 2 != 0) && (value % 3 != 0) && (value % 5 != 0) && (value % 7 != 0) )
{
j = 1;
break;
}
}
}
if (j == 1)
{
printf("%ld", value);
}
return 0;
}
哪里出了问题?
600851475143 太大,无法容纳 32 位整数。long
您的机器上可能是 32 位的。您需要使用 64 位类型。确切的数据类型取决于您的平台、编译器。
您的主要检查代码是错误的。你假设如果某个东西不能被 2、3、5、7 整除,那么它就是素数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)