Java重写《C经典100题》 --14
Posted Java重写《C经典100题》
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java重写《C经典100题》 --14相关的知识,希望对你有一定的参考价值。
【程序14】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
1.程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
1 import java.util.Scanner; 2 3 /*本文转自博客:www.cnblogs.com/java-100 4 【程序14】 5 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 6 程序分析:对n进行分解质因数,应然后按下述步骤完成: 7 (1)先找到一个最小的质数i。 8 (2)如果这个质数恰等于num,则说明分解质因数的过程已经结束,打印出即可。 9 (3)如果num>i,但n能被k整除,则应打印出k的值,并用n除以i的商,作为新的正整数num,重复执行第一步。 10 (4)如果num不能被k整除,则用i+1作为i的值,重复执行第一步。 11 */ 12 13 public class Java14 { 14 15 public static void main(String[] args) { 16 System.out.print("请输入一个正整数:"); 17 Scanner scanner = new Scanner(System.in); 18 int number = scanner.nextInt(); 19 scanner.close(); 20 int num = number; 21 System.out.print(num + "="); 22 boolean primtal = false; 23 for (int i = 2; i <= num; i++) { 24 primtal = false; 25 for (int j = 2; j < Math.sqrt(i) + 1; j++) { 26 if (i % j == 0 && i != j) { 27 primtal = true; 28 break; 29 } 30 } 31 if (!primtal) { 32 if (num == i) { 33 System.out.print(num); 34 break; 35 } else if (num > i && num % i == 0) { 36 num /= i; 37 System.out.print(i + "*"); 38 i = 1; 39 } 40 } 41 } 42 } 43 }
以上是关于Java重写《C经典100题》 --14的主要内容,如果未能解决你的问题,请参考以下文章