{//分解质因数 int num; while (true) { Console.Write("请输入一个合数(大于1:)"); num = int.Parse(Console.ReadLine()); #region //判断 if (num <= 1) { Console.WriteLine("输入有误,输入的数字必须大于1,按回车键继续"); Console.ReadLine(); Console.Clear(); } else { bool isfind = false; for (int i = 2; i < num; i++) { if (num % i == 0) { isfind = true; break; } } if (!isfind) { Console.WriteLine("输入有误,输入的数字必须是合数,按回车键继续"); Console.ReadLine(); Console.Clear(); } else { break; } } #endregion } //创建一个用于保存质因数的集合 //重复动作:寻找数字n的最小质因数i // n=n/i str.Add(i) //重复条件为 n!=1 List<int> str = new List<int>(); int n = num; while (n != 1) { for (int i = 2; i <= n; i++) { if (n%i==0) { //i就是最小质因数 n /= i; str.Add(i); break; } } } string result = num + "="; for (int i = 0; i < str.Count; i++) { result += str[i]; if (i < str.Count - 1) { result += "*"; } } Console.Write(result); Console.ReadLine();