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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© knockout 中级黑马   /  2015-9-10 21:31  /  585 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

  9. import java.util.Scanner;
  10. class FenJieYinShu
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 Scanner sc = new Scanner(System.in);
  15.                 System.out.println("请输入需要分解质因数的数:");
  16.                 int num=sc.nextInt();
  17.                 System.out.print(num+"=");
  18.                 fenJieZhiYinShu(num);
  19.         }
  20.         public static void fenJieZhiYinShu(int num)
  21.         {
  22.                 int a=num;
  23.                 for(int i=2;i<=a/2;i++)
  24.                 {
  25.                         while(num%i==0)
  26.                         {
  27.                                 num=num/i;
  28.                                 System.out.print(i+"*");
  29.                         }

  30.                 }
  31.                 System.out.println("\b ");
  32.                
  33.         }
  34. }


  35. /*
  36. import java.util.Scanner;
  37. class FenJieYinShu
  38. {
  39.         public static void main(String[] args)
  40.         {
  41.                 Scanner sc = new Scanner(System.in);
  42.                 System.out.println("请输入需要分解质因数的数:");
  43.                 int num=sc.nextInt();
  44.                 int k=2;
  45.                 System.out.print(num+"=");
  46.                 while(k<=num)
  47.                 {
  48.                         if(k==num)
  49.                         {
  50.                                 System.out.println(num);
  51.                                 break;
  52.                         }
  53.                         else if (num%k==0)
  54.                         {
  55.                                 System.out.print(k+"*");
  56.                                 num=num/k;
  57.                         }
  58.                         else
  59.                         {
  60.                                 k++;
  61.                         }
  62.                 }
  63.         }
  64. }
  65. */
复制代码

4 个回复

倒序浏览
能看的懂,估计写不出来。你已经在上基础班了?
回复 使用道具 举报
谢谢分享,收藏下来。。。
回复 使用道具 举报
帮顶帮顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马