2^i * 3^j * 5^k なる整数
Posted feedbacks - Java
おなじアルゴリズムになってしまいました。 100個目は1536。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Int235 {
public static void main(String[] a) {
int limit = 100;
for (int n = 0, i = 1; n < limit; i++) {
int tmp = i;
while (tmp % 2 == 0) tmp /= 2;
while (tmp % 3 == 0) tmp /= 3;
while (tmp % 5 == 0) tmp /= 5;
if (tmp == 1) {
System.out.println(i);
n++;
}
}
}
}
|
別のアルゴリズムで解いてみました。
数が大きくなれば有利かな?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Sample206 {
public static void main(String[] args) {
OUTER: for (int i = 1, n = 0; n < 100; i++) {
for (int p = 7; p <= i; p += 2) {
if (p % 3 == 0) continue;
if (p % 5 == 0) continue;
if (i % p == 0) {
continue OUTER;
}
}
System.out.println(i);
n++;
}
}
}
|


leque
#7554()
Rating1/3=0.33
2^i * 3^j * 5^k の形で表される整数を小さい方から順に 100 個列挙するプログラムを書いてください。 i, j, k は 0 以上の整数です。アルゴリズムのオーダーについても考えてみてください。
例えば最初の 10 個は次のようになります:
※解答では i, j, k の各値を示す必要はありません。
[ reply ]