zoukankan      html  css  js  c++  java
  • 将一个正整数分解质因数

    题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。 

     1 package com.li.FiftyAlgorthm;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
     7  * (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
     8  * (2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
     9  * 
    10  * @author yejin
    11  */
    12 public class PrimeFactor {
    13     static int n, k = 2;
    14 
    15     public static void main(String[] args) {
    16         Scanner s = new Scanner(System.in);
    17         n = s.nextInt();
    18         System.out.print(n + "=");
    19         PrimeFactor pf = new PrimeFactor();
    20         pf.f(n);
    21     }
    22 
    23     public void f(int n) {
    24         while (k <= n) {
    25             if (k == n) {
    26                 System.out.println(n);
    27                 break;
    28             } else if (n > k && n % k == 0) {
    29                 System.out.print(k + "*");
    30                 n = n / k;
    31                 f(n);
    32                 break;
    33             } else if (n > k && n % k != 0) {
    34                 k++;
    35                 f(n);
    36                 break;
    37             }
    38         }
    39     }
    40 
    41 }
  • 相关阅读:
    Intent的跳转和传值
    Intent传值的学习
    Activity,Window,View之间是什么关系?
    MATCH_PARENT和FILL_PARENT之间的区别?
    Activity的运行过程
    onCreate和onStart谁的开销大?
    SDKManager连不上墙外的网,列表刷新不出来怎么办?
    AndroidEclipse里的视图里想添加SDK Manager但是找不到怎么办?
    出现“Unable to resolve target 'android-XXX'”怎么处理?
    安卓进程的生命周期
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7142369.html
Copyright © 2011-2022 走看看