using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication2{ class P ...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
// 1.提示並獲取用戶輸入的合數,將該合數保存到變數number中
int number;
while (true)
{
Console.WriteLine("請輸入一個合數(大於1):");
number = int.Parse(Console.ReadLine());
#region 判斷number的值是否正確
if (number <= 1)
{
Console.Write("輸入有誤,輸出的數字必須大於1,按回車鍵繼續");
Console.ReadLine();
}
else
{
//判斷number是否是質數
bool isFind = false;
for (int i = 2; i < number; i++)
{
if(number % i == 0)
{
isFind = true;
break ;
}
}
if (isFind )
{
//不是質數
break;
}
else
{
//是質數
Console.Write("輸入有誤,輸入的數字必須是合數,按回車鍵繼續");
Console.ReadLine();
Console.Clear();
}
#endregion
// 2.得到變數number所有的質因數,把它們保存到集合factors中
//創建一個用於保存質因數的集合
List<int> factors = new List<int>();
int n = number;
while(n != 1)
{
for(int i = 2; i < n; i++)
{
if (n % i == 0)
{
//i就是n的最小質因數
n = n / i;
factors.Add(i);
break;
}
}
}
//3.輸出結果
string result = number + "=";
for (int i = 0; i < factors.Count ; i++)
{
result += factors[i];
if (i < factors.Count - 1)
{
result += "x";
}
}
Console.Write(result);
Console.ReadLine();
}
}
}
}
}