java实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。相关的知识,希望对你有一定的参考价值。
呵呵,楼主是初学者吧,这个只要动动脑筋,也很容易实现的。且看看我的代码吧:
import java.util.*;
public class Nicki
public static void main(String[] args)
System.out.println("java分解正整数质因数例子!");
System.out.println("请你输入一个正整数,并按Enter确认");
Scanner sc=new Scanner(System.in);
int Num=sc.nextInt();
//首先,我们需要得到,输入的这个数Num的一半以内的所有质数
Vector<Integer> vec;
vec=new Vector();
Lab:for(int i=2;i<=Num;i++)
for(int j=2;j<=i/2;j++)
if(i%j==0&&i!=2)//说明能被整除,则i不是质数
continue Lab;
//内层for正常完成后,说明i是质数
vec.add(i);//添加到列表
//下面开始分解质因数
System.out.println(Num+"的分解结果是:\n");
System.out.print(Num+"=");
int theNum=Num;
boolean help=true;
for(int k=0;k<vec.size();k++)
int qq=(int)vec.get(k);
if(theNum<qq)
break;
if(theNum%qq==0)//水明能被整除,则qq就是Num的一个质因数
if(help==true)
System.out.print(qq);
help=false;
else
System.out.print("*"+qq);
k--;//因为,完全有可能Num还能被qq整除,
//所以重新执行一遍
theNum=theNum/qq;
System.out.println("\n分解完毕!");
追问
你回答的很好
但是我刚开始学习java
这个是老师留的作业
你写的有挺多还没有学到呢
Vector vec;
这个我不知道是干什么的
Lab:for(int i=2;i<=Num;i++)
这个也看不懂
vec.add(i);//添加到列表
等都没接触到呢
如果把这个教老师 估计指定不行
以后我学多的时候,再提问题
然后采纳你的结果,不好意思了,谢谢你
int num = 90;
int k = 2;
System.out.print(num + "=");
while (num > k)
if (num % k == 0)
System.out.print(k + "×");
num = num / k;
if (num % k != 0)
k++;
System.out.println(k);
本回答被提问者采纳 参考技术B 回答
您好亲,我是椅子,很高兴为您解答,您的问题已经收到啦,请耐心等候为您解答~❤️
提问用C语言编写
回答对于一个数,他的质因数必然分布在该数的平方根两侧,而且大于平方根的质因数最多只有一个,且必然是分解到最后所剩余的商。那么,我们只要构造一个循环,从2开始到sqrt(n)结束。判断该数字是否能被正整数整除,将数字分解成因数,就可以啦~
程度怎么写?
回答对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。如果n!=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。如果n不能被k整除,则用k+1作为k的值,重复执行第一步
提问你可以写一下程序吗
回答以上是关于java实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。的主要内容,如果未能解决你的问题,请参考以下文章
用java编程 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
代码实现:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
JS实现正整数分解质因数。例如:输入90,打印出90=2*3*3*5
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。