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で出力する感じですね。 そちらのほうが処理が速いのですかね?(初心者故まったくわかりません( ´∀` ))