プロジェクトオイラーの第5問解く前に素因数分解しないといけなさそうなので、とりあえず素因数分解の処理だけ書いてみました。
1~10の整数の素因数分解した結果リストを表示
【ソース】
object soinsubunkai{
def main(args:Array[String]) :Unit = {
println((1 to 10).toList.map(getSoinsu(_)))
}
def soinsu(lst:List[Int],moto:Int,waru:Int):List[Int] =
if(moto>waru) {if (moto%waru==0) soinsu(lst:+waru,moto/waru,waru)
else soinsu(lst,moto,waru+1)} else {lst:+waru}
def getSoinsu(num:Int):List[Int] =
if(num>1) soinsu(List(),num,2) else (List())
}
【処理結果】
List(List(), List(2), List(3), List(2, 2), List(5), List(2, 3), List(7), List(2, 2, 2), List(3, 3), List(2, 5))
0 件のコメント:
コメントを投稿