首页 > 学院 > 开发设计 > 正文

蓝桥杯 算法提高 8-1因式分解

2019-11-08 01:55:24
字体:
来源:转载
供稿:网友

问题描述   设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入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; }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表