读书人

Java面向对象思维OOP理解 东海陈光剑

发布时间: 2013-04-02 12:35:26 作者: rapoo

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内的完全数-------------------------













读书人网 >编程

热点推荐