Project Euler #3 takes forever in Java

后端 未结 9 830
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-04 03:01

Problem #3 on Project Euler is:

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

What is the largest prime factor of the number 60085147514

9条回答
  •  难免孤独
    2020-12-04 03:24

    It's not the perfect solution, but it will work for 600851475143.

    public static void main(String[] args) {
        long number= 600851475143L;
        int rootOfNumber = (int)Math.sqrt(number)+10;
        for(int i = rootOfNumber; i > 2; i--) {
            if(number % i == 0) {
                if(psudoprime(i)) {
                    System.out.println(i);
                    break;
                }
            }
        }
    
    }
    
    public static boolean psudoprime(int num) {
        for(int i = 2; i < 100; i++) {
            if(num % i == 0) {
                return false;
            }
        }
        return true;
    }
    

提交回复
热议问题