java求质因子补充代码

将一个正整数分解为其质因数的积。例如:输入90,输出90=233*5。

请不改动程序原有结构和代码,将程序补充完整,并得到正确运行结果。

输入:90

输出:90=233*5

import java.util.Scanner;  

public class Main { 

       public static void main(String[] args) { 

              Scanner reader=new Scanner(System.in);//定义读取数据对象reader 

              int n; 

              n=reader.nextInt(); //读取一个整数 

              Main pf=new Main(); 

              pf.printPrimeFactor(n);            

       } 

       void printPrimeFactor(int n){  //求整数n的质因子,按按要求输出 

              

       } 

       

       int isPrimeNumber(int n){ 

            

       } 

} 

该回答引用自ChatGPT

public class Main { 
       public static void main(String[] args) { 
              Scanner reader=new Scanner(System.in);//定义读取数据对象reader 
              int n; 
              n=reader.nextInt(); //读取一个整数  
              Main pf=new Main(); 
              pf.printPrimeFactor(n);            
       } 
 
       void printPrimeFactor(int n){  //求整数n的质因子,按按要求输出 
              int i=2;
              System.out.print(n+"=");
              while(i<=n){
                  if(isPrimeNumber(i)==1 && n%i==0){
                      System.out.print(i);
                      n=n/i;
                      if(n!=1){
                          System.out.print("*");
                      }
                  }else{
                      i++;
                  }
              }
              System.out.println();
       } 
       int isPrimeNumber(int n){ 
              int flag=1;
              for(int i=2;i<n;i++){
                  if(n%i==0){
                      flag=0;
                      break;
                  }
              }
              return flag;
       }  
}


import java.util.Scanner;

public class Main {
 
    public static void main(String[] args) {
 
        Scanner reader = new Scanner(System.in); // 定义读取数据对象reader
 
        int n = reader.nextInt(); // 读取一个整数
 
        Main pf = new Main();
 
        pf.printPrimeFactor(n);
 
    }
 
    void printPrimeFactor(int n) { // 求整数n的质因子,按按要求输出
 
        if (n == 1) {
            return;
        }
 
        int i = 2;
 
        while (i <= n) {
 
            if (n % i == 0) {
                System.out.print(i);
                n = n / i;
                break;
            }
 
            i++;
 
        }
 
        if (n != 1) {
            System.out.print("*");
            printPrimeFactor(n);
        }
 
    }
 
    int isPrimeNumber(int n) {
 
        // 判断n是否为质数,返回1为质数,返回0为非质数
 
        int i = 2;
 
        while (i <= Math.sqrt(n)) {
 
            if (n % i == 0) {
                return 0;
            }
 
            i++;
 
        }
 
        return 1;
 
    }
 
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
以下是完整的Java代码,可以将一个正整数分解为其质因数的积,并按要求输出:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);//定义读取数据对象reader

        int n;

        n = reader.nextInt(); //读取一个整数

        Main pf = new Main();

        pf.printPrimeFactor(n);
    }

    void printPrimeFactor(int n) {  //求整数n的质因子,按要求输出
        System.out.print(n + "="); //输出原数n

        int i = 2; //从2开始寻找因子
        while (i <= n) {
            if (n % i == 0) { //如果n能够被i整除
                System.out.print(i); //输出i
                n /= i; //将n除以i,以便继续寻找因子
                if (n != 1) { //如果n不等于1,则继续输出乘号
                    System.out.print("*");
                }
            } else { //否则i加1
                i++;
            }
        }
    }

    int isPrimeNumber(int n) {
        if (n <= 1) { //小于等于1的数不是质数
            return 0;
        }
        for (int i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) { //如果能够被整除,不是质数
                return 0;
            }
        }
        return 1; //是质数
    }
}


该程序的运行结果如下:

输入:

90

输出:

90=2*3*3*5


该回答引用ChatGPT

试一下这个代码

import java.util.Scanner;

public class Main {

csharp
Copy code
public static void main(String[] args) {

    Scanner reader = new Scanner(System.in);//定义读取数据对象reader

    int n;

    n = reader.nextInt(); //读取一个整数

    Main pf = new Main();

    pf.printPrimeFactor(n);

}

void printPrimeFactor(int n) {  //求整数n的质因子,按按要求输出

    System.out.print(n + "=");

    int i = 2;

    while (i <= n) {

        if (n % i == 0) {

            System.out.print(i);

            n = n / i;

            if (n != 1) {

                System.out.print("*");

            }

        } else {

            i++;

        }

    }

}

int isPrimeNumber(int n) {

    if (n <= 1) {

        return 0;

    }

    for (int i = 2; i <= Math.sqrt(n); i++) {

        if (n % i == 0) {

            return 0;

        }

    }

    return 1;

}
}