Java基础练习题:题目:问(1):将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

2017年8月15日19:20:29 发表评论 1,051 views

题目:将一个正整数分解质因数。例如:输入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小时左右吧!

感觉现阶段我编程就像是在做数学一样。好无语,学的东西我都没怎么用上。

 

 

 

 

  • A+
所属分类:JAVA

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: