1. 程式人生 > >java經典50道題之4分解質因數

java經典50道題之4分解質因數

import java.util.Scanner;

/**
 * 題目:將一個正整數分解質因數。例如:輸入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的值,重複執行第一步。 
 */
public class Test {
	public static void main(String[] args) {
		System.out.println("請輸入一個數用來進行因式分解!");
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);	
		int n = sc.nextInt();
		for (int i = 2; i <=n; i++) {
			if(i==n){
				System.out.print(i);
				break;
			}
			else{
				if(n%i==0){
					System.out.print(i+" ");
					n=n/i;
					i--;
				}
				else{
					i=i+1;
					i--;
				}
			}
		}
		main(args);
	}
}

相關推薦

java經典504分解質因數

import java.util.Scanner; /** * 題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。    程式分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:    (1)如果這個質數恰等於n,則說明分解質

java基礎程式設計604

public class Test4 {/*將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5. *  */public static void main(String[] args) {int n;boolean flag;do{flag=true;Scan

Java經典編程50

編程題 pub else 整數 正整數分解 clas 因數 stat args 將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。 public class Example04 { public static void main(String[]

Java經典編程50

n) pub 嵌套 example void out [] args core 利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。 public class Example05 { public

Java經典編程50

其中 println i++ class aaa 一個 bsp pub 個數字 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制。 public class Exa

Java經典編程50

r++ [] main world else number 字符 英文 ray 輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。 public class Example07 { public static void main(String[] a

Java經典編程50

因子 oid 例如 println out count 它的 編程題 num 一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3。編程找出1000以內的所有完數。 public class Example09 { public static v

Java經典編程50

經典 [] 一半 stat ati public sta void amp 一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下……求它在第10次落地時,共經過多少米?第10次反彈多高? public class Example10

Java經典編程50十一

println class num ati void ber pri 多少 example 有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? public class Example11 { public static void main

Java經典編程50十五

數字 java 經典 example 個數字 println clas void bsp 輸入三個整數x,y,z,請把這三個數由小到大輸出。 public class Example15 { public static void main(String[] args

Java經典編程50十四

out break void pri sta cas || 編程 pub 輸入某年某月某日,判斷這一天是這一年的第幾天? public class Example14 { public static void main(String[] args) {

Java經典編程50十九

pub main isp ring args int string class for 打印出如下圖案(菱形) * *** ****** ******** ****** *** * public class E

Java經典編程50二十四

args example for ava ati rgs oid string += 有5個人坐在一起,問第5個人多少歲,他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。 問第三個人,他說比第2人大兩歲。問第2個人, 說比第一個人大兩歲。最後問第一個人,他說是1

Java經典編程50二十五

ray != println 回文 str stat [0 java amp 一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。 public class Example25 { public static void main(S

Java經典編程50二十六

ava ret ner 判斷 大寫 scanner nbsp ring print 請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續判斷第二個字母。 public class Example26 { public static void mai

Java經典編程50二十八

amp for 進行 temp 編程 排序 ati static bubble 對10個數進行排序。 public class Example28 { public static void main(String[] args) { int[] s =

Java經典編程50二十七

void ava prime static sqrt class i++ println mat 求100之內的素數。 public class Example27 { public static void main(String[] args) {

Java經典編程50三十

個數 [] -- ++ 要求 add example system oid 有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。 public class Example30 { public static void main(String[] a

Java經典編程50三十二

out char 輸入 void args pri array int ava 取一個整數a從右端開始的4~7位。 public class Example32 { public static void main(String[] args) { cu

Java經典編程50三十七

static new for length print ati class 個人 經典 有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。 public class Example37 { publ