质因数百度百科解释

质因数素因数质因子)在数论里是指能整除给定正整数的质数。除了1以外,两个没有其他共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以用指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式 [1]  。只有一个质因子的正整数为质数。

每个合数都可以写成几个质数(也可称为素数)相乘的形式 [2]  ,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数;而这个因数一定是一个质数。

例子

  • 1没有质因子。

  • 5只有1个质因子,5本身。(5是质数)

  • 6的质因子是2和3。(6 = 2 × 3)

  • 2、4、8、16等只有1个质因子:2。(2是质数,4 =2²,8 = 2³,如此类推)

  • 10有2个质因子:2和5。(10 = 2 × 5)

基本信息

质因数 [3]  就是一个数的约数,并且是质数。

比如8=2×2×2,2就是8的质因数;

12=2×2×3,2和3就是12的质因数。

把一个式子以12=2×2×3的形式表示,叫做分解质因数。

把一个合数写成几个质数相乘的形式表示,这也是分解质因数 [4]  ,如16=2×2×2×2,2就是16的质因数。

把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。

分解质因数只针对合数。(分解质因数也称分解素因数)求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。

分解质因数的方法是先用一个合数的最小质因数去除这个合数,得出的数若是一个质数,就写成这个合数相乘形式;若是一个合数就继续按原来的方法,直至最后是一个质数 。

分解质因数的有两种表示方法,除了最常用的“短除分解法”之外,还有一种方法就是“塔形分解法”。

分解质因数对解决一些自然数和乘积的问题有很大的帮助,同时又为求最大公约数和最小公倍数做了重要的铺垫。

import java.util.Scanner;/*** 因式分解* 找出正整数的质因数* 强调,质因数一定是个素数!* 比如9、15就不是135质因数,它还能再拆分* 9=3*3* 15=3*5** 结果要写成 正整数=质数*质数*质数*质数*质数*质数*质数*质数...的形式* */
public class PrimeFactors {public static StringBuilder sb;public static void main(String[] args) {System.out.println("请输入一个正整数");Scanner s = new Scanner(System.in);int n = s.nextInt();sb = new StringBuilder();sb.append(n).append("=");factor(n);sb.deleteCharAt(sb.length()-1);System.out.println(sb.toString());}//进行因式分解public static void factor(int number) {for (int i = 2; i < number; i++) {//能整除if (number % i == 0) {sb.append(i).append("*");if(isPrime(number / i)){sb.append(number / i).append("*");}else {factor(number / i);}break;}}}//判断是否为素数public static boolean isPrime(int number) {for (int i = 2; i < number; i++) {if (number % i == 0) {//number不是素数return false;}}return true;}
}

【二】Java编程之分解质因素相关推荐

  1. Miller_Rabbin算法判断大素数,Pollard_rho算法进行质因素分解

    Miller-rabin算法是一个用来快速判断一个正整数是否为素数的算法.它利用了费马小定理,即:如果p是质数,且a,p互质,那么a^(p-1) mod p恒等于1.也就是对于所有小于p的正整数a来说 ...

  2. [数论] Miller_Rabbin算法判断大素数,Pollard_rho算法进行质因素分解

    讲解转载于:http://www.cnblogs.com/rainydays/archive/2011/09/01/2162049.html   http://blog.sina.com.cn/s/b ...

  3. Java编程笔试时输入问题:如何输入固定长度、不定长度的一维数组?如何输入固定长度、不定长度的二维数组?

    Java编程笔试时输入问题: 如何输入固定长度.不定长度的一维数组? 如何输入固定长度.不定长度的二维数组? 如何将数组中的内容直接输出,不要中括号和逗号? 文章目录 ==Java编程笔试时输入问题= ...

  4. Java:Java编程实现导出二维码

    Java:Java编程实现导出二维码 目录 输出结果 代码设计 输出结果 更新-- 代码设计 public class QRCodeUtil {private static final String ...

  5. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  6. 【Java编程思想】读书笔记(二)第六章---第十章

    Java编程思想(第四版)学习笔记 第六章---第十章 第六章:访问权限控制 6.2Java访问权限修饰词 第七章:复用类 7.1 组合语法 7.2 继承语法(extends) 7.4.2名称屏蔽(重 ...

  7. Java编程验证哥德巴赫猜想:任何一个大于6的偶数,都能分解成两个质数的和

    package com.pzhu.demo;import java.util.Scanner;public class Goldbach {//Java编程验证哥德巴赫猜想:任何一个大于6的偶数,都能 ...

  8. Java编程那些事儿69——抽象类和接口(二)

    Java编程那些事儿69--抽象类和接口(二) 陈跃峰 出自:http://blog.csdn.net/mailbomb 8.9.2 接口 接口(Interface)是一种复合数据类型. 至此,Jav ...

  9. Java编程的一些须知(二)

    我们在Java編程程序的过程中,有许多语言的规范,如Java的命名.Java编程规范等等:还有Java的关键字.Java枚举.throw和throws的差别等等: 下面,我们就来说说这些Java的编程 ...

最新文章

  1. c++运算符的全局重载
  2. linux的swap
  3. python2.7出现IOError: [Errno 5] Input/output error
  4. 苹果sf字体_苹果UI设计的改变意味着什么?
  5. sed mysql配置文件_shell解析my.cnf配置文件
  6. Sklearn 与 TensorFlow 机器学习实用指南(补档)
  7. IE9 Platform Preview 3昨天发布
  8. web表格增删改_白话django之数据的增删改
  9. Socks代理是什么意思?有什么用?
  10. 《最优化方法》——数学基础知识线性规划无约束优化算法初步
  11. 克鲁伊夫:斗牛士因巴萨疯癫 红蓝一点克死皇马(2009-11-17)
  12. 云端守望者(上):十二道难关
  13. 微信小程序转换为uni-app项目
  14. js input 正则保留2位小数中文拼音输入问题 + 限制输入整数的方案
  15. 龙蜥操作系统(Anolis OS)安装DDE桌面
  16. 如何在github的README中增加Badge标识
  17. VUE指令大全(详解)
  18. 计算机图形学上机实验一-画出一个钻石
  19. 讯景XFX战狼 rx560 4G
  20. win10与linux双系统

热门文章

  1. 厉害了!万能的支付宝,融入生活的刷脸支付
  2. linux环境部署,图片加载失败
  3. 【C++ 11】 error C3861: ‘_beginthreadex‘: identifier not found
  4. 斯蒂夫·乔布斯的讲演
  5. mysql秒杀业务瓶颈_抢购(秒杀)业务的技术要点
  6. Node.js基础入门(二)
  7. 区块链技术5--BTC网络
  8. Usechain曹教授告诉你,实名制公链对加密世界的重要性
  9. css 绘制直角梯形 和 平行四边形
  10. 电压放大器工作原理及特点是什么