源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java实现分解任意输入数的质因数算法示例

  • 时间:2021-09-04 11:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java实现分解任意输入数的质因数算法示例
本文实例讲述了Java实现分解任意输入数的质因数算法。分享给大家供大家参考,具体如下: [b]分解任意输入数的质因数:[/b] 质因数概念:任何一个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。 例如:12 = 2x2x3  18 = 2 x 3 x 3等等 下面来讲解一下这个算法的思路:第一:我们首先写一个求素数的函数;第二;我们做一个分解质因数的函数,然后在其中引入素数函数来判断是否为素数; [b]下面给出代码(仅供参考):[/b]
package javastudy;
import java.util.*;
public class Testit3 {
  public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int number;
    number = in.nextint();
    factor(number); //函数调用
    in.close(); //关流
  }
  static void factor(int number) {
    if(isPrime(number)) //首先进行判断是否为素数,如果是就直接输出
    {
      System.out.print(number);
    }
    for (int i = 2; i <= number - 1; i++) {
      if (number % i == 0) {
        System.out.print(i + "\t");
        int num = number / i; //进行一次分解num就要变一次!
        if (isPrime(num)) { //判断是否为素数,是的话就直接输出这个数字
          System.out.print(num);
        } else { //不是素数就继续分解
          factor(number / i); //利用函数递归的思想
        }
        // return ;
        break; //分解完了就退出
      }
    }
  }
  //判断是否为素数的函数
  static Boolean isPrime(int number) {
    for (int i = 2; i <= Math.sqrt(number); i++) {
      if (number % i == 0) {
        return false;
      }
    }
    return true;
  }
}

运行结果: [img]http://files.jb51.net/file_images/article/201710/20171017113620758.jpg?2017917113646[/img] [b]PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:[/b] [b]在线分解质因数计算器工具: [/b][url=http://tools.jb51.net/jisuanqi/factor_calc]http://tools.jb51.net/jisuanqi/factor_calc[/url] [b]在线一元函数(方程)求解计算工具: [/b][url=http://tools.jb51.net/jisuanqi/equ_jisuanqi]http://tools.jb51.net/jisuanqi/equ_jisuanqi[/url] [b]科学计算器在线使用_高级计算器在线计算: [/b][url=http://tools.jb51.net/jisuanqi/jsqkexue]http://tools.jb51.net/jisuanqi/jsqkexue[/url] [b]在线计算器_标准计算器: [/b][url=http://tools.jb51.net/jisuanqi/jsq]http://tools.jb51.net/jisuanqi/jsq[/url] 更多关于java算法相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/632.htm]Java数据结构与算法教程[/url]》、《[url=http://www.1sucai.cn/Special/830.htm]Java操作DOM节点技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/687.htm]Java文件与目录操作技巧汇总[/url]》和《[url=http://www.1sucai.cn/Special/682.htm]Java缓存操作技巧汇总[/url]》 希望本文所述对大家java程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部