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;
}
}
コメント
コメントを投稿