TopCoder - SRM 425 DIV 2: 250

今回は、数値配列の中で、その数値配列内の数値を含まない最小公約数を求める問題。コードはいつものとこ。皆さんのコードを見てたら、たいていの方が、ただ単にmax * minでだしてた・・・。それで良いのかwww?

import java.util.Arrays;

public class InverseFactoring {
  public int getTheNumber(int[] factors) {
    Arrays.sort(factors);
    int lcm = factors[0];
    for (int i=1; i<factors.length; i++) {
      lcm = getLcm(lcm, factors[i]);
    }
    if (lcm == factors[factors.length - 1]) {
      return lcm * 2;
    } else {
      return lcm;
    }
  }
  int getGcd (int x, int y) {
    int z=x%y;
    if(z==0) {
      return y;
    } else {
      return getGcd(y, z);
    }
  }
  int getLcm (int x, int y) {
    return x/getGcd(x,y)*y;
  }
}

コメント

このブログの人気の投稿

Python から Win32 API 経由で印刷する

財務諸表 (Financial Statements)

Netflix のスケール - オートメーション編