Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //Console.Write("n=");
            int n = int.Parse(Console.ReadLine());
            if (n == 0)
            {
                Console.WriteLine(10);
            }
            else
            {
            Factorization f = new Factorization();
            List<int> div = f.GetFactors(n);
            string res = "";
            bool flag = true;
            int tmp = 1;
                bool fl = false;
            for (int i = 0; i < div.Count - 1; i++)
            {
               
                if (div[i] < 10)
                {
           
                    tmp *= div[i + 1]*div[i];
                    if (tmp < 10)
                    {
                        if (i + 1 == div.Count - 1)
                            fl = true;
                        res += tmp.ToString();
                    }
                    else
                    {
                        tmp = 1;
                        res += div[i].ToString();
                    }
                }
                else
                {
                    flag = false;
                    break;
                }
            }

                if (flag )
                {
                    if (fl)
                        Console.WriteLine(res);
                    else 
                        Console.WriteLine(res + div[div.Count - 1].ToString());
                }
                
          
            else
            {
                Console.WriteLine(-1);
            }
        }

        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            try
            {
                List <int>    Ans  = new List <int>();
                Factorization fact = new Factorization();

                int a, b, c;
                int Elm = 1;

                while (true)
                {
                    Console.WriteLine("2次の項は?");
                    a = int.Parse(Console.ReadLine());
                    Console.WriteLine("1次の項は?");
                    b = int.Parse(Console.ReadLine());
                    Console.WriteLine("定数項は?");
                    c = int.Parse(Console.ReadLine());

                    fact.createFactorization(a, b, c, ref Ans, ref Elm);

                    if (Ans.Count == 0)
                    {
                        if (Elm != 1)
                        {
                            Console.WriteLine("共通因数は{0}だけど、", Elm);
                        }
                        else
                        {
                            Console.WriteLine("共通因数はありません。");
                        }
                        Console.WriteLine("二乗公式による因数分解はできませんでした。");
                        string Retryflg = "";
                        Console.WriteLine("まだ続けますか? はい:y, いいえ:n");
                        Retryflg = Console.ReadLine();
                        if (Retryflg == "y")
                        {
                            continue;
                        }
                        else if (Retryflg == "n")
                        {
                            break;
                        }
                        else
                        {
                            Console.WriteLine("yかnだっつってんのにー");
                            Console.WriteLine("じゃあな。");
                            break;
                        }
                    }

                    if (Ans[0] < 0 || Ans[2] < 0)
                    {
                        for (int ic = 0; ic < 4; ic++)
                        {
                            Ans[ic] = Ans[ic] * (-1);
                        }
                    }
                    for (int ic = 0; ic < Ans.Count; ic++)
                    {
                        if (Ans[ic] % Elm == 0)
                        {
                            Ans[ic] = Ans[ic] / Elm;
                        }
                    }
                    if (Elm != 1)
                    {
                        Console.WriteLine("共通因数:{0}", Elm);
                    }
                    else
                    {
                        Console.WriteLine("共通因数なし");
                    }
                    Console.WriteLine("{0}, {1}, {2}, {3}", Ans[0], Ans[1], Ans[2], Ans[3]);


                    string flg = "";
                    Console.WriteLine("まだ続けますか? はい:y, いいえ:n");
                    flg = Console.ReadLine();
                    if (flg == "y")
                    {
                        continue;
                    }
                    else if (flg == "n")
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("yかnを入力しろよ。");
                        break;
                    }
                }

                Console.WriteLine("ところで、数字を入力すると素因数分解するけど、どうする? する:y, しない:n");
                string PFflg = Console.ReadLine();
                if (PFflg == "y")
                {
                    Console.WriteLine("数字を入力すると素因数分解するよ。");
                    long          num      = long.Parse(Console.ReadLine());
                    List <long>   fList    = new List <long>();
                    List <long>   fnumList = new List <long>();
                    Factorization p        = new Factorization();
                    p.createPrimeFactorization(num, ref fList, ref fnumList);
                    Console.WriteLine("{0}の素因数分解はというと", num);
                    Console.Write("素因数:");
                    for (int ic = 0; ic < fnumList.Count; ic++)
                    {
                        if (fnumList[ic] == 0)
                        {
                            continue;
                        }
                        Console.Write("{0:d6}", fList[ic]);
                        if (ic != fnumList.Count - 1)
                        {
                            Console.Write(",");
                        }
                    }
                    Console.WriteLine();
                    Console.Write("次数: ");
                    for (int ic = 0; ic < fnumList.Count; ic++)
                    {
                        if (fnumList[ic] == 0)
                        {
                            continue;
                        }
                        Console.Write("{0:d6}", fnumList[ic]);
                        if (ic != fnumList.Count - 1)
                        {
                            Console.Write(",");
                        }
                    }
                    Console.WriteLine();
                }
                else if (PFflg == "n")
                {
                }
                else
                {
                    Console.WriteLine("yかnかで入力しろよな。");
                    return;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }