欧拉工程第三题 找出一个合数的最大质数因子

本文介绍了欧拉工程第三题的解题思路,通过一个巧妙的方法找出600851475143的最大质数因子,该方法利用迭代优化了代码效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:
13195的质数因子有5,7,13和29。
600851475143的最大质数因子是多少?

解题方法:
本次求解过程使用了一个比较聪明的做法,这也是经过仔细思考之后才想出来的,当然也是受到了某位朋友的启发。
由于方法恰当,使得代码量减少,运行效率也得到了提高。类中的方法使用了两个迭代,这是一个比较特点的地方。

程序代码:

public class LargestPrimeFactor {
    public static long largestPrimeFactor(long number){
        if(number%2==0) return largestPrimeFactor(number/2);
        for(long i=3;i*i<=number;i=i+2)
        {
            if(number%i==0) return largestPrimeFactor(number/i);
        }
        return number;
    }

    public static void main(String[] args) {
        LargestPrimeFactor lpf=new LargestPrimeFactor();
        long start=System.currentTimeMillis();
        System.out.println(lpf.largestPrimeFactor(600851475143L));
        long end=System.currentTimeMillis();
        System.out.println((end-start)+"毫秒");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值