我的欧拉工程之路_3

发布时间:2019-07-04 10:03:11编辑:auto阅读(1735)

    Largest prime factor

    Problem 3

    The prime factors of 13195 are 5, 7, 13 and 29.

    What is the largest prime factor of the number 600851475143 ?

    最大的素数因数

    问题 3

    13195 的素数因数是 5, 7, 13 和 29.

    那么数字 600851475143 最大的素数因数的多少?

    public class Euler3
    {
        //返回一个一维素数数组,长度为length
        public static int[] getPrimeArray(int length)
        {
            int[] prime =new int[length];
            prime[0]=2;
            for(int num=3,lengthTemp=1;lengthTemp!=length;num+=2)
            {
                int i;
                boolean primeFlag=true;
                for(i=3;i<=Math.sqrt(num);i+=2)
                {
                    if(num%i==0)
                    {
                        primeFlag=false;
                        break;
                    }
                }
                if(primeFlag==true)
                {
                    prime[lengthTemp]=num;
                    lengthTemp++;
                }
            }
            System.out.println("已生成素数数组,长度为"+length+"最后一个元素为"+prime[length-1]);
            return prime;
        }
        public static void main(String[] args)
        {
            int length=1000,primeMax=2;
            long num=600851475143L;
            int[] prime=Euler3.getPrimeArray(length);
            for(int i=0;i<length && prime[i]<=num;i++)
            {
                while(num%prime[i]==0)
                {
                    primeMax=prime[i];
                    num/=prime[i];
                }
            }
            System.out.println("primeMax="+primeMax);
        }
    }


关键字