解决方案 »
- 如何把视频文件通过数据流网络发送后,在客户端接收并播放。
- Java编写ftp客户端(主要是验证用户名和密码)
- 双重for的break还是有疑问!
- 关于split的一个问题(跟正则表达式有关)
- 在java中有没有那个方法或者函数能得到磁盘信息??(我没分了,可怜可怜吧~~)
- 对象比较问题!在线等待......及时揭帖
- 数据库中的名词catalog、schema等都是什莫意思啊,怎摸翻译?(谢谢)
- 怎样定时运行java程序
- 如何解决软件在平台间显示的字体效果不样的问题?
- 用面向对象改迷你dvd,进行封装以后在数组里不会访问对象了。ps我是小白,求高人指点
- eclipse如何防止自动添加'Android private libraries'?
- 关于ArrayList中装箱与拆箱的问题
public static void fen_jie_zhi_yin_shu(int x) {
int num = 0;// 用于统计运行次数,与算法实现没什么关联
int sushu = 2;// 用于试除的数
int n = x;// 保留当前将被分解的数值
int first = 1;// 用于控制显示,和算法实现关联不大
while (sushu <= n) {
// if(x%sushu != 0){//性能改进
if (n % sushu != 0) {
// 当前的sushu不是n的因数,增加1,试验下一个数
// 因为是从最小的素数开始试除的,如果sushu不是素数,一定会走这个分支
sushu++;
} else {
// // 不把这段代码移到上面来,显示会有问题
// 输出得到的一个因数,因为循环是从最小的素数开始试除的,所以,当前的
// sushu的值一定是素数
if (first == 1) {
System.out.print(n + "=" + sushu);
first++;
} else {
System.out.print("*" + sushu);
}
// x/=sushu;//性能改进
// 得到当前n的另一个因数
n /= sushu;
// if (first == 1) {
// System.out.print(n + "=" + sushu);
// first++;
// } else {
// System.out.print("*" + sushu);
// }
}
//检查算法效率用的,和算法关系不大
num++;
}
//以下是显示用的,和算法关系不大
System.out.println();
System.out.println("num=" + num);
}
我试验了一下,做了点改动,写了一下注释,不清楚达到你的要求没有。