java—优化这个最大的素因子程序的最佳方法

nhhxz33t  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(267)

我需要一些帮助来优化这个程序。我正试图找出输入的最大主因子。但是,它偶尔会有超时问题,所以我有兴趣找出如何优化它。

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class PFactor() {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();

        for(int a0 = 0; a0 < t; a0++){
            long n = in.nextLong();
            System.out.println(pMod(n));
        }
    }

    public static int pMod(long d) {
        long maxVal = 0;

        for (long i = 2; i <= d; i++) {
            if (d % i == 0) {
                boolean prime = pCount(i);
                if (prime == true) {
                    max = i;
                }
            } else {                
                max = max;
            }
        }
        return (int)max;
    }

    public static boolean pCount(long inLong) {
        int count = 0;
        for (long s = 1; s <= inLong; s++) {
            if (inLong % s == 0) {
                count++;
            } 
        }

        if (count == 2) {
            return true;
        } else {
            return false;
        }
    }
}

你知道如何优化这段代码,使它没有那么多的超时?我需要这个很快准备好的东西在工作中,所以我决定伸手看看,如果我可以得到一些帮助,因为我似乎无法找出它需要进一步优化自己。

2j4z5cfb

2j4z5cfb1#

我真的找到了一个解决方案,伙计们,经过一点修补!不过你们都帮了大忙!谢谢你的帮助!

相关问题