小编use*_*665的帖子

如何找到最大的素数因子600851475143?

#include <stdio.h>
main()
{
    long n=600851475143;
    int i,j,flag;
    for(i=2;i<=n/2;i++)
    {
        flag=1;
        if(n%i==0)//finds factors backwards
        {
            for(j=2;j<=(n/i)/2;j++)//checks if factor is prime
            {
                if((n/i)%j==0)
                    flag=0;
            }
            if(flag==1)
            {
                printf("%d\n",n/i);//displays largest prime factor and exits
                exit(0);
            }
        }    
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于n = 6008514751.但是,它不起作用n = 600851475143,即使该数字仍然在a的范围内long.
我能做些什么才能让它发挥作用?

c

-1
推荐指数
1
解决办法
470
查看次数

标签 统计

c ×1