我用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;
}
最佳答案
我想你的意思是
if ((i%j) !=0)
^^^
if(prime(j))
return (j);
还要考虑到 2 是素数。
关于c - 我的 c 代码给出了错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279777/