题目:将一个正整数分解质因数。例如:输入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小时左右吧!
感觉现阶段我编程就像是在做数学一样。好无语,学的东西我都没怎么用上。