质因数分解算法的java实现

每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数。如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数。而这个因数一定是一个质数。

定义

质因数(或质因子)在数论里是指能整除给定正整数的质数。两个没有共同质因子的正整数称为互质。因为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.html
http://blog.csdn.net/jiratao/article/details/38303147

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值