鱼C论坛

 找回密码
 立即注册
查看: 903|回复: 2

[已解决]为什么我这个代码没法运行

[复制链接]
发表于 2021-12-23 02:47:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:编写一个程序,求解 600851475143 的最大质数因子是多少?

代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    long long target, mid = 0, test,re;
    //target用来表示最大质数因子,mid用来判断target是否为质数,
    //test用来用来测试target是否为质数,re用来表示600851475141与target的余数
    for(target = 600851475141;target > 0;target = target - 2)
    {
        //re为0则target是600851475143的因数,反之则不是
        re = 600851475143 % target;
        //mid为0则target是质数,反之则不是
        for(test = 2;test < target;test++)
        {
            if(target % test == 0)
            {
                mid = 1;
                break;
            }
        }
        //因为target是600851475143倒着找因数的,所以第一个满足余数为0且为质数的target就是最大质数因子
        if(re == 0 && mid == 0)
        {
            printf("600851475143 的最大质数因子是%11d", target);
            break;
        }
    }
    return 0;
}
最佳答案
2021-12-23 05:43:56
 for(target = 600851475141;target > 0;target = target - 2)//数太大,每次减2,用时太长
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-23 05:43:56 | 显示全部楼层    本楼为最佳答案   
 for(target = 600851475141;target > 0;target = target - 2)//数太大,每次减2,用时太长
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-23 08:14:12 From FishC Mobile | 显示全部楼层
这么大的数字,不能只用基本方法找素数(取模),找到天荒地老...
就连用平方根找,都不知道多久才能找到...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 06:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表