用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

java高手们请用较为简便的方法编写... java高手们请用较为简便的方法编写 展开
 我来答
税政谊08
2018-04-11 · TA获得超过1.9万个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:4.3万
展开全部

将一个正整数分解质因数。例如:输入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]

大雅新科技有限公司
2024-11-19 广告
#include using namespace std; int main() { \x09int n,i=2, c=0; \x09scanf("%d", &n); \x09printf("%d=", n); \x09while(n%i>... 点击进入详情页
本回答由大雅新科技有限公司提供
mtimeyu
2018-09-02
知道答主
回答量:1
采纳率:0%
帮助的人:832
展开全部
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;
            }
           }
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
未来有你681
2019-04-02
知道答主
回答量:1
采纳率:0%
帮助的人:758
展开全部
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
System.out.print("请输入一个要分解的正整数:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
System.out.print(input+"=");
for(int i=2;i<input+1;i++) {
while(input%i==0 && input!=i) {
input=input/i;
System.out.print(i+"*");
}
if(input==i) {
System.out.print(i);
break;
}
}
scanner.close();
}
}
运行过的 正确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d3e9b27
2018-11-21
知道答主
回答量:1
采纳率:0%
帮助的人:804
展开全部
public class Test4 {
public static void main(String[] args) {

System.out.print("请输入一个要分解的正整数:");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
System.out.print(input+"=");

for(int i=2;i<input+1;i++) {

while(input%i==0 && input!=i) {
input=input/i;
System.out.print(i+"*");
}
if(input==i) {
System.out.print(i);
break;
}
}
scanner.close();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-05-22
展开全部
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);
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式