将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
【程序4】
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
作者: liyuntop 发布时间: 2011-06-09
你这不是都已经有思路了吗?转换成代码就完事啦。
难道你想捡现成的?
难道你想捡现成的?
作者: stevenzxl 发布时间: 2011-06-09
为了100分,我咻~~结帖给分吧~
public class Test {
int k = 2;
public void step (int x) {
for (int i = 1;i<10;i++) {
if (x == k) {
System.out.println(x);
break;
} else {
if ( x%k == 0) {
System.out.println(k);
x= x/k;
break;
} else {
k=k+1;
break;
}
}
}
}
public static void main (String[] args) {
Test t = new Test();
t.step(90);
}
}
public class Test {
int k = 2;
public void step (int x) {
for (int i = 1;i<10;i++) {
if (x == k) {
System.out.println(x);
break;
} else {
if ( x%k == 0) {
System.out.println(k);
x= x/k;
break;
} else {
k=k+1;
break;
}
}
}
}
public static void main (String[] args) {
Test t = new Test();
t.step(90);
}
}
作者: stevenzxl 发布时间: 2011-06-09
啊忘记测试了,把后面2个break改成continue,这样就好用了,第一个不用改。
作者: stevenzxl 发布时间: 2011-06-09
呵呵,顶啊。加油
作者: wangquanzheng 发布时间: 2011-06-09