我在c中的代码输出错误

时间:2017-04-07 13:45:50

标签: c

我在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;
}

1 个答案:

答案 0 :(得分:0)

我认为你的意思是

        if ((i%j) !=0)
                  ^^^
            if(prime(j))
                return (j);

还要考虑到2是素数。