qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          Java實(shí)現(xiàn)將一個(gè)正整數(shù)分解質(zhì)因數(shù)

          * 題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
            * 分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:
            *(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。
            *(2)如果n>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。
            *(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。
            *這個(gè)題目很明顯是要用遞歸算法來(lái)實(shí)現(xiàn)的,打印“*”有些技巧,但也很容易解決,程序如下:
          import java.util.Scanner;
          public class Yinshifenjie {
          public static void fenjie(int n) {
          for (int i=2;i <=n;i++) {
          if (i == n) {
          System.out.print(i);
          return;
          }
          if (n > i && (n % i == 0)) {
          System.out.print(i+"*");
          fenjie(n / i);
          break;
          }
          }
          }
          public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          System.out.println("請(qǐng)輸入一個(gè)整數(shù):");
          int n = input.nextInt();
          fenjie(n);
          }
          }

          posted on 2014-09-04 09:47 順其自然EVO 閱讀(232) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 正宁县| 邢台县| 大荔县| 淮北市| 奎屯市| 军事| 南投县| 承德县| 九寨沟县| 西和县| 江山市| 柏乡县| 金寨县| 油尖旺区| 五华县| 昌乐县| 绥棱县| 子洲县| 凤城市| 北流市| 安康市| 图木舒克市| 原阳县| 前郭尔| 淳化县| 溧水县| 房产| 阿拉善左旗| 陵水| 天镇县| 巴里| 涿鹿县| 马龙县| 克拉玛依市| 新竹县| 浦县| 葫芦岛市| 济宁市| 瓦房店市| 武定县| 鲁山县|