2^i * 3^j * 5^k なる整数
Posted feedbacks - Groovy
素因数分解用の関数があればもっと楽になるかな
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | def 素因数分解(num){
def map = [:]
for( int i = 2; i <= num ;i++ ){
if( num%i == 0 ){
map[i] = (map[i]?:0) + 1
num = (int)(num/i)
i--
}
}
map
}
def list = [:]
def oklist = [2, 3, 5]
for(def i = 1;list.size()<100;i++){
def map = 素因数分解(i)
if(map.keySet() - oklist)
continue
list[i] = map
}
list.each{ key, value ->
println("${key}".padLeft(4) + " = " + oklist.collect{ "${it}^${value[it]?:0}" }.join(" * "))
}
|


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