Java分解质因数



题目:将1个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。


分析:对n进行分解质因数,应先找到1个最小的质数k,然后按下述步骤完成:

(1)如果这个质数恰等于n,则说明分解质因数的进程已结束,打印出便可。

(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复履行第1步。

(3)如果n不能被k整除,则用k+1作为k的值,重复履行第1步。

public class ResolvePrime {

public static void main(String[] args) {
System.out.println(resolvePrime(90));
System.out.println(resolvePrime(134));
System.out.println(resolvePrime(81));
}

/**
* 分解质因数
* @param num 待分解的数字
* @return 分解后的数字结果
*/
public static String resolvePrime(int num) {

// 定义结果字符串缓存对象,用来保存结果字符
StringBuffer sb = new StringBuffer(num + "=");

// 定义最小素数
int i = 2;

// 进行展转相除法
while (i <= num) {

// 若num 能整除 i ,则i 是num 的1个因数
if (num % i == 0) {

// 将i 保存进sb 且 后面接上 *
sb.append(i + "*");

// 同时将 num除以i 的值赋给 num
num = num / i;

// 将i重新置为2
i = 2;
} else {

// 若没法整除,则i 自增
i++;
}
}

// 去除字符串缓存对象最后的1个*,将结果返回
return sb.toString().substring(0, sb.toString().length() – 1);
}
}

输出结果

90=2*3*3*5
134=2*67
81=3*3*3*3

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Java分解质因数

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡