问题描述 设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。 样例 与上面的样例输入对应的输出。 例: 120 2*2*2*3*5
数据规模和约定 输入数据中每一个数在int表示范围内。
import java.util.Scanner;public class Main{ public static void main(String args[]){ Scanner in=new Scanner(System.in); int n=in.nextInt(); if(zhishu(n)){ System.out.PRintln(n); }else{ boolean flag=true; while(n%2==0){ //n能被2整除的情况 if(flag){ System.out.print(2); flag=false; } else{ System.out.print("*2"); } n/=2; } while(n!=1){//n不能被2整除的情况 for(int i=3;;i+=2){ if(zhishu(i) && n%i==0){ if(flag){ System.out.print(i); flag=false; }else{ System.out.print("*"+i); } n/=i; break; } } } } } public static boolean zhishu(int a){ for(int i=2;i<a;i++){ if(a%i==0){ return false; } } return true; }}新闻热点
疑难解答