分解质因数_java
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相关推荐
- java所有的质因数_Java实现分解任意输入数的质因数算法示例
本文实例讲述了java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...
- java正整数分解因数_java将一个正整数分解质因数
import java.util.Scanner; import java.util.Vector; public class 分解质因数 { public static void main(Stri ...
- java求最大公约数_java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd; import java.util.ArrayList; import java.util.List; public c ...
- C语言,分解质因数一个解法!_只愿与一人十指紧扣_新浪博客
题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个 ...
- 阶乘分解质因数[经典题组合数学枚举质因子]
引入问题: 给定整数NNN,试把阶乘 N!N!N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pip_ipi 和 cic_ici即可. N!N!N!分解质因数后的结果,共若干行,每行一对 ...
- 【数学专题】 筛质数、分解质因数和快速幂
筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...
- 【c语言】分解质因数
将一个正整数N(1<N<32768)分解质因数.例如,输入90,打印出90=233*5. 样例输入 66 样例输出 66=2311 #include <stdio.h> int ...
- java求最大公约数(分解质因数)
下面是四种用java语言编程实现的求最大公约数的方法: package gcd;import java.util.ArrayList; import java.util.List;public cla ...
- 负数分解质因数java_Java经典案例之-“分解质因数”
/** * 描述:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5. * 分析: * 对n进行分解质因数,应该先找到一个最小的质数k,然后按照下列步骤进行: * (1)如果这个质数恰 ...
- python【蓝桥杯vip练习题库】ADV-359分解质因数
试题 算法提高 分解质因数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个正整数n,尝试对其分解质因数 输入格式 仅一行,一个正整数,表示待分解的质因数 输出格式 仅一行, ...
最新文章
- C++11特性(模板类 initializer_list)
- 【Python基础】50个令人大开眼界的 Matplotlib 可视化项目
- 强制关闭虚拟机后问题+解决
- Android之用java的socket写服务器提示java.net.BindException: Address already in use
- linux + nginx + mysql + php 百度网盘_5.LNMP(Linux + Nginx + MySQL + PHP)环境安装
- 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径
- Linux下PHP5.5编译参数详解
- 单片机c语言编程实训心得,单片机实训心得体会
- android弹出窗背景透明,Android Dialog 弹框之外的区域 默认透明背景色修改
- 易语言调用大漠插件判断游戏是否在线
- 朱晔的互联网架构实践心得S2E1:业务代码究竟难不难写?
- 大数据的产业链分析,大数据完整的产业链构成
- python怎样编程_怎么自学python编程
- 华为机试(python):字符串1
- pip安装GeoIP时报fatal error: GeoIP.h: No such file or directory
- noMeiryoUI——Windows修改系统默认字体的一个好用工具
- 15年程序员经验分享:40个改变你编程技能的小技巧!
- 关于飞思卡尔S12系列单片机SPI通信MODRR配置
- 英语口语233之每日十句口语
- 【C语言】结构体排序
热门文章
- DM6437烧写总结
- 微信公众号(订阅号)申请流程
- 东莞 小学计算机编程大赛,小学生编程大赛【小学生大赛自我介绍】
- 修改服务器域名解析,总结修改Godaddy解析服务器(DNS)三步骤
- 【夏日护眼妙招】三种食物要多吃
- ps怎么撤销参考线_干货技巧 | Photoshop10大奇技淫巧(肯定有你不知道的!)
- 拍牌系统改版html5,开启上海拍牌的日子,有点玩人的系统,一会快一会慢
- 【史上最全】设计师必备的83个设计资源网站
- activex chrome插件_10个超实用的设计师专属Chrome小插件
- 小说app开发—小说app搭建需要注意什么问题?