1. 分解质因数

给定⼀个正整数num,将这个正整数分解质因数,返回分解后的结果。

  • 输入输出说明及示例输入只有⼀⾏,包含一个数字,即要被分解的数字。
  • 输出为分解后的结果,且结果按照从⼩到⼤的顺序输出
  • 示例:
    • 输⼊:90
    • 输出:90=233*5
      注:测试用例不会出现输⼊为1的情况

1.1. 又臭又长版本

import java.util.*;
public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();// List<Integer> list = new ArrayList<Integer>();Boolean flag  = true;System.out.print(n + "=");for(int i=2;i<=n;i++){if(n % i==0){for(int j=2;j<i;j++){if(i % j==0){flag = false;break;}}if(flag){if(n / i==1){System.out.print(i);break;}else{System.out.print(i+"*");n /=i;i = 1;// 这个是关键,保证了同样的质因数可以被打出来// System.out.print("<"+n+">");}}flag =true;}}input.close();}
}

1.2. 原始版本

import java.util.*;
public class Test {public static void main(String[] args){int num;Scanner input = new Scanner(System.in);num = input.nextInt();System.out.print(num+"=");int temp = num;for(int i=2;i<num/2;i++){// 判断是否是因子// 循环-->从而不放过相同数值的因子while (temp %i==0){Boolean flag = true;// 判断是否是素数--->看了后面的分析,会发现根本这个不用判断for(int j=2;j<i;j++){if(i%j==0)flag = false;}if(flag)System.out.print(i);// 判断是否是最后一位if(temp / i !=1)System.out.print("*");// 不仅是整除,更是分解,因而被除数每除以除数temp /= i;}}input.close();}
}

1.3. 观察版本

再看看洞察了"质数被1和自身整除",从而融入到判断条件中之后:


import java.util.Scanner;
public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();  //用户输入数值int k=2;System.out.print(n + "=" );while(k <= n){// 洞察之后真的不一样啊if(k == n) {System.out.println(n);break;  // 如果质数k等于n 说明n是质数 所以分解质因数的过程结束 用break跳出while循环 输出n即可}else if( n % k == 0){System.out.print(k + "*");n = n / k;}   //如果n不等于k且能被k整除 输出k的值 并用n除以k的商作为新的正整数n 继续while循环。else k++;  //将k这个因子判断完再不能除之后看后面k+1的可能性}input.close();}
}

以及无声的融入判断条件–直接限制变量范围即可


import java.util.Scanner;
public class Test {public static void main(String[] args) {Scanner input=new Scanner(System.in);int n = input.nextInt(); System.out.print(n +"="); //当i值大于n的平方根时停止,留下最后一个质因数for(int i = 2;i<= Math.sqrt(n);i++){if(n % i==0){System.out.print(i+"*");n = n / i;i--; //令i自减,再次判断是否可以被整除}}System.out.println(n); //输出最后一个质因数input.close();}
}

分解质因数_java相关推荐

  1. java所有的质因数_Java实现分解任意输入数的质因数算法示例

    本文实例讲述了java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...

  2. java正整数分解因数_java将一个正整数分解质因数

    import java.util.Scanner; import java.util.Vector; public class 分解质因数 { public static void main(Stri ...

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

    下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...

  4. C语言,分解质因数一个解法!_只愿与一人十指紧扣_新浪博客

    题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个 ...

  5. 阶乘分解质因数[经典题组合数学枚举质因子]

    引入问题: 给定整数NNN,试把阶乘 N!N!N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pip_ipi​ 和 cic_ici​即可. N!N!N!分解质因数后的结果,共若干行,每行一对 ...

  6. 【数学专题】 筛质数、分解质因数和快速幂

    筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...

  7. 【c语言】分解质因数

    将一个正整数N(1<N<32768)分解质因数.例如,输入90,打印出90=233*5. 样例输入 66 样例输出 66=2311 #include <stdio.h> int ...

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

    下面是四种用java语言编程实现的求最大公约数的方法: package gcd;import java.util.ArrayList; import java.util.List;public cla ...

  9. 负数分解质因数java_Java经典案例之-“分解质因数”

    /** * 描述:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * 分析: * 对n进行分解质因数,应该先找到一个最小的质数k,然后按照下列步骤进行: * (1)如果这个质数恰 ...

  10. python【蓝桥杯vip练习题库】ADV-359分解质因数

    试题 算法提高 分解质因数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行, ...

最新文章

  1. C++11特性(模板类 initializer_list)
  2. 【Python基础】50个令人大开眼界的 Matplotlib 可视化项目
  3. 强制关闭虚拟机后问题+解决
  4. Android之用java的socket写服务器提示java.net.BindException: Address already in use
  5. linux + nginx + mysql + php 百度网盘_5.LNMP(Linux + Nginx + MySQL + PHP)环境安装
  6. 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径
  7. Linux下PHP5.5编译参数详解
  8. 单片机c语言编程实训心得,单片机实训心得体会
  9. android弹出窗背景透明,Android Dialog 弹框之外的区域 默认透明背景色修改
  10. 易语言调用大漠插件判断游戏是否在线
  11. 朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?
  12. 大数据的产业链分析,大数据完整的产业链构成
  13. python怎样编程_怎么自学python编程
  14. 华为机试(python):字符串1
  15. pip安装GeoIP时报fatal error: GeoIP.h: No such file or directory
  16. noMeiryoUI——Windows修改系统默认字体的一个好用工具
  17. 15年程序员经验分享:40个改变你编程技能的小技巧!
  18. 关于飞思卡尔S12系列单片机SPI通信MODRR配置
  19. 英语口语233之每日十句口语
  20. 【C语言】结构体排序

热门文章

  1. DM6437烧写总结
  2. 微信公众号(订阅号)申请流程
  3. 东莞 小学计算机编程大赛,小学生编程大赛【小学生大赛自我介绍】
  4. 修改服务器域名解析,总结修改Godaddy解析服务器(DNS)三步骤
  5. 【夏日护眼妙招】三种食物要多吃
  6. ps怎么撤销参考线_干货技巧 | Photoshop10大奇技淫巧(肯定有你不知道的!)
  7. 拍牌系统改版html5,开启上海拍牌的日子,有点玩人的系统,一会快一会慢
  8. 【史上最全】设计师必备的83个设计资源网站
  9. activex chrome插件_10个超实用的设计师专属Chrome小插件
  10. 小说app开发—小说app搭建需要注意什么问题?