首页 > 解决方案 > 以明确的模式打印素数

问题描述

我必须以这种格式打印任何数字的素数。例如:32 = 2*2*2*2*2 这是我的代码。它适用于除 32 之外的所有人,它给出:2*2*2*2*2* 如何避免最后一个 *. 这是我的代码:public class PF{

public static void pf(int n) {

    for(int i = 2; i< n; i++) {
         while(n%i == 0) {
            System.out.print(i+ "*");
            n = n/i;
         }
    }

    if (n > 2) System.out.print(n); 
}

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a number");
    int n = sc.nextInt();
    pf(n);
}

标签: javaprimesprime-factoring

解决方案


其他选项,您可以在 while 循环中避免 * when n=i

public static void pf(int n) {

    for (int i = 2; i < n; i++) {
        while (n % i == 0) {
            System.out.print(i);
            if (n != i) {
                System.out.print("*");
            }
            n = n / i;
        }
    }


    if (n > 2)
        System.out.print(n);
}

推荐阅读