A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马超 中级黑马   /  2012-7-7 13:12  /  1290 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【程序4】   晕啊~~搞了半天搞不出。。:(
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。   
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:   
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。   
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。   
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。   

2 个回复

倒序浏览
本帖最后由 曹恒业 于 2012-7-7 13:27 编辑

    1. import java.util.Scanner;  
    2.   
    3. public class Test {  
    4.   
    5.     public static void main(String[]args){  
    6.         //解决要分解的数字  
    7.         System.out.println("输入要分解的整数:");  
    8.         Scanner in = new Scanner(System.in);  
    9.         int number = in.nextInt();  
    10.          
    11.         //分解方法  
    12.         int k =2;  
    13.         System.out.print(number + "=" );  
    14.         while(number>k){  
    15.             if(number%k==0){  
    16.                 System.out.print(k+"*");  
    17.                 number=number/k;  
    18.             }else{  
    19.                 k++;  
    20.             }  
    21.         }  
    22.         System.out.print(number+";");  
    23.     }  
    24. }
    复制代码
    分解质因数的方法挺多,按照楼主的思路很容易贴出代码,简单写了一下。希望能帮到你~~

评分

参与人数 1技术分 +1 收起 理由
黑马张扬 + 1

查看全部评分

回复 使用道具 举报
这个是我写的代码。楼主可以参考参考!
  1. import java.io.*;
  2. public class Demo
  3. {
  4.         public static void main(String[] args)throws IOException
  5.         {
  6.                 System.out.print("请输入一个正整数:");
  7.                 int num = Integer.parseInt(new BufferedReader(
  8.                                         new InputStreamReader(System.in)).readLine());
  9.                 for (int i=2; i<=num; i++)
  10.                 {
  11.                         while (num % i == 0)
  12.                         {
  13.                                 System.out.print(i+" ");
  14.                                 num /= i;
  15.                         }
  16.                 }
  17.                 System.out.println();
  18.         }
  19. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马