Fairchi

社会人になります。何かの役に立てればと思ってます。https://www.amazon.jp/hz/wishlist/ls/2FUDIWTM4EC2N?ref_=wl_share

CodeWarsのPrimes in numbers in C#

今回はCodeWarsのPrimes in numbers、日本語で言う素因数分解にチャレンジしてきたので、結果をシェアしたいと思います! 使用言語はC#です。

問題内容としては、与えられた整数を素因数分解して、回答を文字列で表示するというもの。 出力例としてはこんな感じ、n = 86240 should return "(25)(5)(72)(11)" 整数86240が与えられたときに文字列として"(25)(5)(72)(11)"を返すということですね。 問題としては非常にシンプルです。

そして、私の解法としてはこうです。

using System;

public class PrimeDecomp{
   public static String foctors(int lst){
     int i;
     string ans ="";
     for(i = 2; i <= lst; i++){     
        var x =0;
        while(lst % i){
           lst /= i;
           x++;
        }
     ans += "(" + i.ToString();
     if(x > 1)
       ans += "**" + x.ToString();
     ans += ")"
     }
     return ans;
}

まあ、無難な回答ですかね。 その他の解答例としては、リストを使っている回答もありました。素因数をリストに入れて最後にJoinで出力する感じですね。 そちらのほうが処理が速いのですかね?(初心者故まったくわかりません( ´∀` ))