用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
答案:4 悬赏:30 手机版
解决时间 2021-04-04 11:01
- 提问者网友:精神病院里
- 2021-04-03 14:59
用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-04-03 15:32
将一个正整数分解质因数。例如:输入60;打印出2*3*5*2
算法实现构思:
1、用Scanner实现输入一个正整数n
2、用一个for循环遍历一个从 k=2开始查找到k<=n的数
3、如果 n%k==0的时候,输出k的值
4、然后把n的值递归一下,即 n=n/k
5、这个时候要把for循环重新执行,即再定义k=2
下面是实现代码:
下面是运行结果
上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。
参考资料
CSDN.CSDN[引用时间2018-1-5]
算法实现构思:
1、用Scanner实现输入一个正整数n
2、用一个for循环遍历一个从 k=2开始查找到k<=n的数
3、如果 n%k==0的时候,输出k的值
4、然后把n的值递归一下,即 n=n/k
5、这个时候要把for循环重新执行,即再定义k=2
下面是实现代码:
下面是运行结果
上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。
参考资料
CSDN.CSDN[引用时间2018-1-5]
全部回答
- 1楼网友:鱼忧
- 2021-04-03 15:57
引用198756531469的回答:
将一个正整数分解质因数。例如:输入60;打印出2*3*5*2
算法实现构思:
1、用Scanner实现输入一个正整数n
2、用一个for循环遍历一个从 k=2开始查找到k<=n的数
3、如果 n%k==0的时候,输出k的值
4、然后把n的值递归一下,即 n=n/k
5、这个时候要把for循环重新执行,即再定义k=2
下面是实现代码:
下面是运行结果
上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。
参考资料
CSDN.CSDN[引用时间2018-1-5]
16=2×2×2×2
代码不对
将一个正整数分解质因数。例如:输入60;打印出2*3*5*2
算法实现构思:
1、用Scanner实现输入一个正整数n
2、用一个for循环遍历一个从 k=2开始查找到k<=n的数
3、如果 n%k==0的时候,输出k的值
4、然后把n的值递归一下,即 n=n/k
5、这个时候要把for循环重新执行,即再定义k=2
下面是实现代码:
下面是运行结果
上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。
参考资料
CSDN.CSDN[引用时间2018-1-5]
16=2×2×2×2
代码不对
- 2楼网友:走死在岁月里
- 2021-04-03 15:51
public static void main(String[] args){
int a=0;
Scanner s= new Scanner(System.in);
a=s.nextInt();
yinzi(a);
}
public static void yinzi(int a){
System.out.print(a+"=");
while(a!=1) {
for (int i = 2; i <= a; i++) {
if (a % i == 0) {
System.out.print(i + " ");
if(a!=i){
System.out.print("*");
}
a = a / i;
break;
}
}
}
}
}
int a=0;
Scanner s= new Scanner(System.in);
a=s.nextInt();
yinzi(a);
}
public static void yinzi(int a){
System.out.print(a+"=");
while(a!=1) {
for (int i = 2; i <= a; i++) {
if (a % i == 0) {
System.out.print(i + " ");
if(a!=i){
System.out.print("*");
}
a = a / i;
break;
}
}
}
}
}
- 3楼网友:人類模型
- 2021-04-03 15:38
package one;
import java.util.*;public class ProOne {
//题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
public static void main(String[] args)
{
int parm=0;
//int i=0;
System.out.println("请输入数字:");
Scanner scanner = new Scanner(System.in);
parm=scanner.nextInt();
System.out.print(parm+"=");
for(int i=2;i<=parm;i++)
{
while(parm!=i)
{
if(parm%i==0)
{
System.out.print(i+"*");
parm=parm/i;
}
else
{
break;
}
}
}
System.out.print(parm);
}
}
import java.util.*;public class ProOne {
//题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
public static void main(String[] args)
{
int parm=0;
//int i=0;
System.out.println("请输入数字:");
Scanner scanner = new Scanner(System.in);
parm=scanner.nextInt();
System.out.print(parm+"=");
for(int i=2;i<=parm;i++)
{
while(parm!=i)
{
if(parm%i==0)
{
System.out.print(i+"*");
parm=parm/i;
}
else
{
break;
}
}
}
System.out.print(parm);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯