2^i * 3^j * 5^k なる整数
Posted feedbacks - C#
ちゃんと計算してないけど、時間計算量はO(n logn)、空間計算量はO(1)ぐらい? 再帰してるから空間計算量はO(logn)なのかな。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class P
{
static void Main(string[] args)
{
for (int i = 1, c = 0; c < 100; i++)
{
int[] f = F(i);
if (f != null)
{
++c;
System.Console.WriteLine
("{0} = 2^{1} * 3^{2} * 5^{3}", i, f[2], f[3], f[5]);
}
}
}
static int[] F(int n)
{
if (n == 1) return new int[6];
int[] a = { 2, 3, 5 };
foreach (int d in a)
if (n % d == 0)
{
int[] r = F(n / d);
if (r == null) return null;
++r[d];
return r;
}
return null;
}
}
|


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