题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
分析:用户输入一个数,要分解质因数,最低质因数是2接着3,5,7。
import java.util.Scanner;
public class No4_1{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.println("请输入一个三位个数:");
int n=s.nextInt();
if(n>999||n<0){
System.out.println("你输入的是非法值");
}
No4_1 m=new No4_1();
m.one(n);
}
public void one(int n){
int x=n;
int j=0;
int arr[]=new int[20];
for(int i=0;i<arr.length;i++){
if(x%2==0){
arr[i]=2;
x=x/2;
}else if(x%3==0){
arr[i]=3;
x=x/3;
}else if(x%5==0){
arr[i]=5;
x=x/5;
}else if(x%7==0){
arr[i]=7;
x=x/7;
}else{
j++;
if(j==1){
arr[i]=x;
}break;
}
}
for(int i=0;i<arr.length;i++){
if(i==0){
System.out.print(n+"的质因数是:"+arr[i]);
}else{
if(arr[i]>1){
System.out.print("*"+arr[i]);
}
}
}
}
}
我觉得我的思路够好,这我差不多花了3小时左右吧!
感觉现阶段我编程就像是在做数学一样。好无语,学的东西我都没怎么用上。
