黑马程序员技术交流社区
标题:
将一个正整数分解质因数
[打印本页]
作者:
凌端浩
时间:
2015-8-31 00:23
标题:
将一个正整数分解质因数
/**
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
思路:1.定义一个变量从键盘接收一个正整数,如果不是正整数提示重新输入。
2.分解质因数:定义i从1到number遍历,计算number%i的余数, 如果余数为零,则输出i*(一个因子)
然后将number的值置为number/i,i的值重置为1,继续执行循环,直到i=number;输出number。
3.可以先判断一下这个数是不是素数,如果是素数,直接输出1*number;如果不是素数,在分解质因数;
*/
import java.util.*;
class Test4
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int number=0;
while(number<=0){
System.out.println("请输入一个正整数:");
number=input.nextInt();
}
System.out.print(number+" = ");
for (int i=2;i<number ;i++ )
{
int r = number % i;
if (r==0)
{
System.out.print(i+"*");
number= number/i;
i=1;
}
}
System.out.println(number+"。");
}
}
作者:
凌端浩
时间:
2015-8-31 00:25
本帖最后由 凌端浩 于 2015-8-31 00:28 编辑
/*
添加一个方法prime,判断number是否为素数,若是素数,按7=1*7格式输出;
*/
import java.util.*;
class Test4v2
{
boolean primeP(int number){
int flag=1;
for(int x=2;x<number;x++){
if(number%x==0){
flag=0;
break;
}
}
if(flag==1)
return (true);
else
return(false);
}
public static void main(String[] args)
{
Test4v2 test=new Test4v2();
Scanner input=new Scanner(System.in);
int number=0;
while(number<=0){
System.out.println("请输入一个正整数:");
number=input.nextInt();
}
System.out.print(number+" = ");
if(test.primeP(number)){
System.out.print(1+"*");
}else {
for (int i=2;i<number ;i++ )
{
int r = number % i;
if (r==0)
{
System.out.print(i+"*");
number= number/i;
i=1;
}
}
}
System.out.println(number+"。");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2