我在c中编写了这个代码,找到了数字i的最大素数因子,它给出了j = 5102831,这是素数而不是i的因子。
代码似乎写给我,所以感觉编译器有问题。
所以,有人请复制此代码并检查它给出的输出。
#include <stdio.h>
int prime (int);
int main()
{
int i=600851475143,j;
j=i-1;
for ( ; ; j--)
{
if ((i%j) ==0)
if(prime(j))
return (j);
if (j==2)
break;
}
return 0;
}
int prime (int j)
{
int k;
for(k=2; k<=j-1; k++)
if((j%k)==0)
return 0;
return 1;
}
答案 0 :(得分:0)
我认为你的意思是
if ((i%j) !=0)
^^^
if(prime(j))
return (j);
还要考虑到2是素数。