Factors 分解質因數
package com.yourself.yours; import java.util.Scanner; /** *************************************************************** * @author cc Factors * 分解質因數 如: 輸入90 打印 90=2*3*3*5 * 分析: 對n進行分解質因數 * 1.設定最小的質數 k=2; * 2.if k==n 說明n本身就是質因數 分解過程完成 ,直接打印 * 3.if n!=k打印k,並用n除以k的商,作為新的正整數n,重複執行第二步 * 4.if n%k != 0 則用k+1作為k的值,重複第二步 *************************************************************** */ public class Factors { public static void main(String[] args) { // TODO Auto-generated method stub Scanner s = new Scanner(System.in); System.out.println("please input a number of positive integer: "); int c = s.nextInt(); printFactors(c, makeFactors(c));; } private static StringBuffer makeFactors(int n) { int k = 2;// set the small factors StringBuffer strb = new StringBuffer();// save the everybody of the factors while (k <= n) { if (k == n) { strb.append(n); break; } else if (n % k == 0) { strb.append(k); n = n / k; } else { k++; } } return strb; } private static void printFactors(int clientNumber, StringBuffer factors){ for(int i = 0; i < factors.length()-1; i++){ if(i % 2 == 0){ factors.insert(i+1, "*"); } } System.out.println(clientNumber + "=" + factors); } }
最後更新:2017-04-03 12:54:34