Prime Factorization Program in Java

后端 未结 12 1750
自闭症患者
自闭症患者 2021-01-03 11:11

I am working on a prime factorization program implemented in Java. The goal is to find the largest prime factor of 600851475143 (Project Euler problem 3). I think I have m

12条回答
  •  太阳男子
    2021-01-03 12:08

    Why make it so complicated? You don't need do anything like isPrime(). Divide it's least divisor(prime) and do the loop from this prime. Here is my simple code :

    public class PrimeFactor {
    
        public static int largestPrimeFactor(long number) {
            int i;
    
            for (i = 2; i <= number; i++) {
                if (number % i == 0) {
                    number /= i;
                    i--;
                }
            }
    
            return i;
        }
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            System.out.println(largestPrimeFactor(13195));
            System.out.println(largestPrimeFactor(600851475143L));
        }
    }
    

提交回复
热议问题