分解质因数
任何一个合数(0和1除外).都可以被分解为多个质数相乘
代码实现:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
#region 判断umbers的值是否正确,正确则输出,错误则提醒错误
int number;
while (true)
{
Console.Write("请输入一个合数(大于1):");
number = int.Parse(Console.ReadLine());
if (number <= 1)
{
Console.Write("输入有误,输入的数字必须大于1,按回车键继续");
Console.ReadLine();
Console.Clear();
}
else
{
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
#region 2.得到变量numbers所有的质因数,把它们保存到集合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;
}
}
}
#endregion
#region 3.输出结果
string result = number + "=";
for (int i = 0; i < factors.Count; i++)
{
result= result+factors[i];
if (i<factors.Count-1)
{
result=result+ "×";
}
}
Console.Write(result);
Console.ReadLine();
#endregion
}
}
}