质因数分解算法的java实现
2016-11-04 00:01
721 查看
每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。
5只有1个质因子,5本身。(5是质数。)
6的质因子是2和3。(6 = 2 × 3)
http://blog.csdn.net/jiratao/article/details/38303147
定义
质因数(或质因子)在数论里是指能整除给定正整数的质数。两个没有共同质因子的正整数称为互质。因为1没有质因子,1与任何正整数(包括1本身)都是互质。正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式。只有一个质因子的正整数为质数。例子
1没有质因子。5只有1个质因子,5本身。(5是质数。)
6的质因子是2和3。(6 = 2 × 3)
计算方法
代码如下:// import java.util.*; public class Zys{ public static void main(String[] args){ Scanner sn = new Scanner(System.in); String yn = new String(); do{ System.out.print("请输入待分解数:\n"); try{ int n = sn.nextInt(); Analyse(n); }catch(InputMismatchException ime){ //System.out.print(ime.toString()); System.out.print("输入错误!请输入整数:\n"); sn = new Scanner(System.in); continue; } System.out.print("继续?y/n "); yn = sn.next(); }while(yn.equals("y")); } static void Analyse(int n){ System.out.print("分解结果为:\n" + n + "="); int i; for(i = 2; i <= Math.sqrt(n); i++){ if(n % i == 0){ n = n/i; System.out.print(i + "*"); i--; } } System.out.print(n + "\n"); } }
说明
代码中实现了一种Java里清空缓冲区的方法,就是new一下;同时注意Scanner类要关闭!参考引用
http://www.acmerblog.com/integer-factorization-5124.htmlhttp://blog.csdn.net/jiratao/article/details/38303147
相关文章推荐
- Java实现POP3服务器
- 用Java实现多线程服务器程序
- 用JAVA实现Undo、Redo,Copy、Paste、Cut
- 用Java实现的设计模式系列(2)-Prototype
- http断点续传简单实现(java)
- 用Java实现的设计模式系列(3)--Builder
- 使用 .NET实现JavaTM Pet Store J2EETM 蓝图应用程序
- 在Java程序,如何实现自适应位置的快捷菜单
- 用Java实现的设计模式系列(1)-Factory
- Java.NET --一个基于Java的Microsoft.NET框架的实现
- 利用Java实现zip压缩/解压缩
- Java Tip: 用Reflection实现Visitor模式
- 在java中实现对FORM的打印功能
- Java中利用散列表实现股票行情的查询
- 用Java实现Web服务器 HTTP协议
- 使用Java实现数据报通讯过程
- 在Java applet中如何实现一个模式对话框?
- Java实现时间日期格式转换示例
- dom规范和java中的实现(二)
- IBM Java Jvm GC实现内幕