Java实验七:类和异常

一、实验目的:
掌握类的设计思想、异常的处理
二、实验内容:
1、设计一个工具类Utils,该类中包括一个方法:IsPerNum方法用于判断一个给定数值是否是完全数,实现该算法,并计算10000以内的所有完全数
(说明:完全数是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28)
2、在此工具类中增加一个方法ComputeGDC,用于计算两个数的最大公约数,如果有,则返回最大公约数;如果没有,则抛出自定义异常GCDException

package experiment_seven;
//import java.util.Scanner;
class GCDException extends Exception{
	//String message;
	public GCDException(){
			System.out.println("ERROR");
	}
}
class Utils{
	public void IsPerNum(int num){
		int sum = 0;
		if(num<=0)
			System.out.println("ERROR");
		else{
			System.out.print("约数有:");
			for(int i=num;i>0;i--){
				if(num%i==0){
					System.out.print(i+" ");
					sum += i;
				}
			}
			if(sum==2*num){
				System.out.println();
				System.out.println(num+"为完全数");
			}
		}
	}
	public void AllPerNum(int num) {
				int count = 0;
				System.out.println(num+"以内的完全数有:");	
				for(int i=1;i<=num;i++){
					int sum=0;
					for(int j=1;j<i;j++){
						if(i%j==0)
							sum+=j;
					}
					if(sum==i) {
						count++;
						System.out.println(i+" ");
					}
			}
				System.out.println(num+"以内共"+count+"个完全数");	
		}
	public void ComputeGDC(int a,int b)throws GCDException {
		if(a<0||b<0){
			throw new GCDException ();
		}
		else {
			System.out.print(a+"与"+b+"的最大公约数:");
			if(a<b){
				int temp = a; 
					a=b;          
					b=temp;
			}
			while (a %b!=0){
				int temp =a%b;
				a=b;
				b=temp;
			}
			System.out.println(b);
		}
	}
}

public class Experiment_seven{
	public static void main(String[] args){
		/*System.out.println("输入一个自然数:");
		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
		int num = input.nextInt();*/
		Utils number = new Utils();
		number.IsPerNum(28);
		number.AllPerNum(10000);
		try {
			number.ComputeGDC(13, 12);
		}catch (GCDException e){
			e.printStackTrace();
		}	
	}
}

 

1.腾龙梦屋文章内容无特殊注明皆为源儿原创,转载请注明来源,谢谢!
2.若有相关文章侵犯您的权益,请联系源儿删除,谢谢!
3.相关软件、资料仅供学习参考使用,在24h内务必删除!
腾龙梦屋 » Java实验七:类和异常
加速支持