Java面向对象思想OOP理解 东海陈光剑 剑魔书仙读书录
/** * */package iSword;import java.util.Scanner;/** * @author root * *///*****************************主类************************************************//public class data_basics {/** * @param args *//** * main()主函数:程序执行入口 * @param args *//* * 自定义系统输出函数 */public void print(String str){System.out.print(str);}public void find_prime_numbers(int N){print("2,3,"); int count=0; for(int i=2;i<N;i++){ boolean b=false; for(int j=2;j<=Math.sqrt(i);j++) { if(i % j==0) { // 逐个相除,一直到sqrt(i)不能整除的就是质数 b=false; break; } else { b=true; } } if (b==true){ count++; print(i+","); } } print("The 1-N has"+count+" prime numbers. " );}public void find_full_number(int N) {for(int i=1;i<N;i++){ //计算因子之和 t int t=0; for (int j=1;j<=i/2;j++){ if(i%j==0){ t=t+j; } } if(t==i) { print(i+" = "); for (int k=1;k<=i/2;k++){ if(i%k==0 ) { print(k+" + "); } } print(" \n\n"); } } }public static void main(String[] args) {// TODO Auto-generated method stubdata_basics dtb=new data_basics();System.out.println("begin 求最大公约数和最小公倍数---------" );//begin 求最大公约数和最小公倍数--------------------------------- int a,b,m; Scanner s=new Scanner(System.in); dtb.print("Please input a: "); a=s.nextInt(); dtb.print("Please input b: "); b=s.nextInt(); //调用主实现类 greatestCommonDivisor greatest_common_divisor g=new greatest_common_divisor(); //调用主实现类 greatestCommonDivisor里面的主方法 m=g.get_greatest_commonDivisor(a, b); int n=a*b/m; System.out.println("最大公约数: " + m); System.out.println("最小公倍数: " + n); //end求最大公约数和最小公倍数--------------------------------- System.out.println("end 求最大公约数和最小公倍数---------" ); System.out.println("begin 求1-N质数-------------------------" ); //begin 求1-N质数 -------------------------------------------------- dtb.find_prime_numbers(100); //N=100 //end 求1-N质数-------------------------------------------------- System.out.println("end 求1-N质数-------------------------" ); System.out.println("begin 求1-1000内的完全数-------------------------" ); dtb.find_full_number(1000);//求1-1000内的完全数 System.out.println("end 求1-1000内的完全数-------------------------" );}}//******************************************************************************////******************************************************************************////最大公约数:主实现类class greatest_common_divisor{ // 主方法public int get_greatest_commonDivisor(int x, int y){int t;if (x<y){ t=x; x=y; y=t;} while(y!=0){ if (x==y) return x; else{ int k=x%y; x=y; y=k; } } return x;}}//******************************************************************************//-----------------------output---------------------
//******************************************************************************//
begin 求最大公约数和最小公倍数---------
Please input a: 13
Please input b: 26
最大公约数: 13
最小公倍数: 26
end 求最大公约数和最小公倍数---------
begin 求1-N质数-------------------------
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,The 1-N has23 prime numbers. end 求1-N质数-------------------------
begin 求1-1000内的完全数-------------------------
6 = 1 + 2 + 3 +
28 = 1 + 2 + 4 + 7 + 14 +
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 +
end 求1-1000内的完全数-------------------------