Java实现把正整数分解为质因数的乘积
来源:互联网 发布:淘宝权限管理 编辑:程序博客网 时间:2024/06/06 04:55
1、质因数的定义: 每个合数都可以写成几个质数(素数)相乘的形式,这些质数就叫该合数的质因数。
2、根据算术基本定理,任何正整数皆有独一无二的质因子分解式子。
3、用到的函数:
判断是否为质数:判断n以内的质数,只要n不能分解即可。
判断n以内的最小素数;
分解函数:递归调用dispose函数,用n不断除以计算出的n以为的最小素数,直到除尽。
下面是正确代码:
import java.util.Scanner;/** * @author LilyLee * @date 2017年4月25日 * @time 下午10:24:10 * @Version 1.0 * @email lilylee_1213@foxmail.com * */public class DecomposeInt {static int LEN=1000; //定义正整数的最大值int[] result=new int[LEN];int x=0;public static void main(String[] args) {Scanner sc=new Scanner(System.in);DecomposeInt di=new DecomposeInt();System.out.println("input number");int num=sc.nextInt();di.dispose(num);String ss="";for(int i=0;i<di.result.length;i++){if(di.result[i]>0)ss+=di.result[i]+"*";}System.out.println(num+"="+ss.substring(0, ss.length()-1));}public static boolean isPrime(int n){if(n==2) return true;for(int i=2;i<Math.sqrt(n);i++){if(n%i==0) return false;}return true;}public static int[] minPrime(int n){int [] prime=new int [LEN];int a=0;for(int i=2;i<=n;i++){if(isPrime(i)){prime[a++]=i;}}return prime;}public void dispose(int n){int[] min=DecomposeInt.minPrime(n);int j=0;for(j=0;j<min.length;j++){if(n%min[j]==0){this.result[x++]=min[j];if(n==min[j]) return;break;}}this.dispose(n/min[j]);}}
1 0
- Java实现把正整数分解为质因数的乘积
- Java实现将一个正整数分解质因数
- 【Java】实现将一个正整数分解质因数
- java实现正整数分解质因数(改良版)
- 分解正整数的质因数
- 正整数的质因数分解
- Java将一个正整数分解质因数相乘的形式
- 非常经典的JAVA编程题(正整数分解质因数)
- java实现分解质因数
- java将一个正整数分解质因数
- Java将一个正整数分解质因数
- Java小程序:正整数分解质因数
- 记录--java--将一个正整数分解质因数
- 正整数分解质因数(Java详解)
- java-将一个正整数分解质因数
- 质因数分解算法的java实现
- JAVA实现对整数的质因数分解
- 将正整数分解质因数
- 样式初始化
- 回溯法 解决 8皇后问题
- C语言笔记1
- c++第五次作业
- jQuery介绍篇
- Java实现把正整数分解为质因数的乘积
- 一个统计单词的程序
- <UE4>分析UObjectBase
- 直接选择排序
- C# WinForm开发系列之chart控件画折线图和柱形图并自定义鼠标移动到数据标记点显示提示信息
- 跟我学JavaScript--HTML DOM--节点,DOM对象方法,DOM对象属性
- linux 安装ntfs-3g
- Leetcode算法练习-easy篇-Roman to Integer
- 多表连接查询