c - 我的 c 代码给出了错误的输出

标签 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;
}

最佳答案

我想你的意思是

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

还要考虑到 2 是素数。

关于c - 我的 c 代码给出了错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279777/

相关文章:

c - Gtk:禁止 GtkWindow 的垂直调整大小

c - 具有没有原型(prototype)的旧式函数的 C 编译器的行为

c - 将 16 位值转换为 8 位值的有效方法

c++ - 如何使用 write() 函数将结构写入文件?

c - 无法加载共享库 : undefined symbols

c - 如何从函数中取回指针的指针

c - 如何防止在 Visual Studio 中从 for 循环到 memset() 的自动优化?

python - 如何将 PyObject * 内存数据复制到另一个内存地址?

c - 我应该教 C89、C18 还是别的什么?

c - 我需要更好地理解指针实际指向的内容