java 分解质因数 基础增强

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

    为了熟悉加强基础练习,搞搞经典小demo..话不多说,直接贴代码,看注释。package www.test;import java.util.Scanner;


public class Resovle {
	public static void main(String[] args) {
		/**           简单分析:
		 * 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
		   如果n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
		   如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
		 * */
		Scanner sc = new Scanner(System.in);  //创建了键盘录入对象
		System.out.println("请输入要分解的整数:");
		int num = sc.nextInt();
		System.out.print(num+"=");      //为了输出格式为:90=2*3*3*5。
		resolve(num);
		sc.close();              //记得关流
	}
	/**      *分解方法      *      */	public static void resolve(int num){

		for (int i = 2; i < num; i++) {
			if(num % i == 0){
				System.out.print(i+"*");
				//调用方法,判断num/i是否为素数(质数),是素数直接输出
				if(num / i >0 && isPrime(num / i)){
					System.out.print(num /i +"");                    //不是素数,还可以分解,递归调用(调用自己);
				}else{
					resolve(num/i);
				}
				break;
			}

		}

	}
    //判断是否为素数
	private static boolean isPrime(int num) {
		for (int i = 2; i < num; i++) {
			if(num % i == 0){
				return false;
			}
		}
		return true;
	}
}

  

时间: 2024-08-26 08:47:24

java 分解质因数 基础增强的相关文章

java分解质因数代码

import java.util.*; class 分解质因数 { static ArrayList<Integer> al; public static void main(String[] args) { al=new ArrayList<Integer>(); fenjie(84729332); System.out.println(al); } public static void fenjie(int x) { if(isPrime(x)) { al.add(x); re

java分解质因数

1 package test; 2 3 import java.util.Scanner; 4 5 public class Test19 { 6 /** 7 * 分析:对n进行分解质因数,应先找到一个最小的质数k 8 9 * 最小的质数:即“2”.2是最小的质数,即是偶数又是质数,然后按下述步骤完成: 10 11 *(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可. 12 13 *(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重

中国MOOC_零基础学Java语言_第7周 函数_1分解质因数

第7周编程题 查看帮助 返回 第7周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个[2,10000

java编程题 --分解质因数

package Solve; import java.util.Scanner; public class Solve { static Scanner scan = new Scanner(System.in); public static void main(String[] args) { System.out.println("请输入一个正整数:"); int num = scan.nextInt(); System.out.print(num + " = "

java求最大公约数(分解质因数)

下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public class gcd { public static void main(String[] args) { long startTime; long endTime; long durationTime; int[] testArray1 = new int[]{784, 988, 460, 732,

【Java EE 学习第31天】【JavaScript基础增强】【Ajax基础】【Json基础】

一.JavaScript基础增强 1.弹窗 (1)使用window对象的showModelDialog方法和showModelessDialog方法分别可以弹出模式窗口和非模式窗口,但是只能在IE中使用,所以不推荐使用,最好使用open方法弹窗. (2)open方法. (3)open方法弹窗实例. Base.html文档: <!DOCTYPE html> <html> <head> <title>Base.html</title> <met

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的值,重复执行第一步.  *这个题目很明显是要用递归算法来实现的,打印"*"有些技巧,但也

javaweb &gt;_&lt; java基础增强 ①

javaweb_Ⅰjava基础增强——断点 ps:Bad version number   in .class file.             该错误 指eclipse运行环境低于编辑java版本. 双击左键设置断点, F5跳入方法中.step into F6跳过.step over F7跳出方法  .step return 查看变量值:右键watch. 跳到当前方法的最开始.drop to frame 跳到下一个断点 /结束应用程序. resume 清除断点breakpoint. 断点调试

JAVAWEB &gt;_&lt; JAVA基础增强 ②

javaweb_Ⅵjava基础增强——反射 学习框架的基础 反射:加载类,并解剖出类的各个组成部分. 加载类: ps: 获取下列有什么用 构造函数:原,创建对象完成对象初始化.用来创建对象 方法:原,完成某个功能.使用该方法 成员变量:原,封装数据.给字段封装数据 ①反射构造方法 // 解剖(反射类)构造函数并创建类的对象 @Test public void testss () throws Exception { // 先加载类,后解剖(反射) // public Person() Class