每日一题

wentang 2011-08-26

//时间复杂度为O(n*n)

static ArrayList<Integer> list=new ArrayList<Integer>(20);
static long cal(int num){
       num++;
       long temp=1;
       for(int i=2;i<num;i++){
              int rn=getRealNum(i);//得到的数是 list中不能通过组合得到的
              list.add(rn);
              temp*=rn;
      }
     return temp;
}

static int getRealNum(int num){
        for(Integer n:list){
            if(num%n==0){//可以被除尽
            num/=n;
          }
       }
   return num;
}

// System.out.println(cal(20));
// 输出232792560

 

wentang 2011-08-26
c.zhiwu 2011-10-13
public long smallestNumberCanDivided(int n){
		if(n==1)return 1;
		
		long retval=2;
		for(int i=3;i<=n;i++){
			retval *= i/stein.gcd(retval, i);
		}
		return retval;
	}
香飘飘2011 2011-10-18
public static void main(String[] args) {
      int max = 20;
      int i=1;
      while(!divide(i,max)){
      i++;
      }
      System.out.println(i);
     
    }
    public static  boolean divide(int big,int max){
    for(int i=1;i<max;i++){
    if(big%i != 0){
    return false;
    }
    }
    return true;
    }
Global site tag (gtag.js) - Google Analytics