主要不同因素混淆

时间:2021-04-09 19:35:46

标签: java prime-factoring

我必须创建一个名为 PrimeGenerator 的类,用于检查给定的数是否为质数,然后打印质因数,然后打印不同质因数。
我还必须使用 main 方法创建另一个类,该类提示用户输入 any integer >= 2 并根据输入的内容返回特定输出。我制作了 main 方法,我有 isPrimeprintPrimeFactors 的方法,但我不确定如何制作 printDistinctPrimeFactors 方法。
其他一切似乎都在工作,并且与我得到的输出文件相匹配,我只是不知道如何打印 printDistinctPrimeFactors

这是 PrimeGenerator 类:

public class PrimeGenerator
{
    /**
     * tests whether a given positive integer is prime
     */
    public static boolean isPrime(int num) {
        if(num == 2) {
            return true;
        } 
        else if(num%2 == 0) {
            return false;
        }
        for (int i = 3; i <= Math.sqrt(num); i += 2)
        {
            if (num % i == 0)
            return false;
        }
        return true;
    }
    /**
     * Prints prime factors of a given integer
     */
    public static void printPrimeFactors(int num) {
        System.out.println("The prime factors of " + num + " are given below");
        for(int i = 2; i< num; i++) {
         while(num%i == 0) {
            System.out.print(i+" ");
            num = num/i;
         }
        }
        if(num >2) {
            System.out.println(num);
        }
    }
    /**
     * Prints distinct prime factors of a given integer
     */
    public static void printDistinctPrimeFactors(int num) {
}
}

这是我的主要方法:

public class Project4
{
    public static void main(String args[]) {
        int i = 0;
        do{
            System.out.print("Please enter a positive integer that is at least >= 2: ");
            Scanner input = new Scanner(System.in);
            int num = input.nextInt();
            PrimeGenerator myobject = new PrimeGenerator();
            if(num >= 2) {
                myobject.isPrime(num);
                if(myobject.isPrime(num)== false) {
                    System.out.println(num + " is not a prime number");
                }
                else {
                    System.out.println(num + " is a prime number");
                }
                myobject.printPrimeFactors(num);
            } 
            else {
                System.out.println("You did not input a positive integer >= 2");
            }
            System.out.println("Do you want to try again? Enter Yes or No: ");
            Scanner input2 = new Scanner(System.in);
            String userinput = input2.nextLine();
            if(userinput == "no" || userinput == "No" || userinput == "NO") {
                System.out.println("Thank you and good bye!");
                i = 1;
            } 
        } while(i == 0);
        
        
    }
}

0 个答案:

没有答案