using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static int[] nums = new int[1000];
//代表了数组的上限与坐标
static int n = 0;
private static bool flag = true;
static int sum = 0;
static void Main(string[] args)
{
int num = 108*13*11*25;
getFactor(num);
Console.Write(num+"=");
for (int i = 0; i < n; i++)
{
if (i != n - 1)
{
Console.Write(nums[i] + "*");
}
else
{
Console.Write(nums[i]);
}
}
Console.ReadKey();
}
static void getFactor(int num)
{
//num不能等于2因为2是质数此方法效率高就是因为先把所有可以被2整数的数去掉了
if (num % 2 == 0&&num!=2&&num!=1)
{
nums[n++] = 2;
getFactor(num / 2);
}
if (num != 1 && num != 2 && num % 2 != 0)
{
for (int i = 3; i < num; i = i + 2)
{
int key = num % i;
//如果该数与i能除尽
if (key == 0)
{
//i代表这个因式
nums[n++] = i;
//递归调用num/i也就是除后的数
getFactor(num/i);
//证明不是质数置flag
flag = false;
break;
}
}
if(flag)
{
flag = true;
nums[n++]= num;
}
}
}
}
}
此方法处理了能被2整数的数效率较高。
C#实现因式分解代码
最新推荐文章于 2021-10-01 18:15:29 发布