数学里小儿科之最:其一 因子分解

因子分解是小学二年级就会的基本功,我总觉得它小儿科,但是并不是那么简单,因为我的这是升级版。原版只要揪出因子而不计数量,那就与事实不符,比如256=2
长话短说,这是乘方格式的
代码如下

///<summary>因子分解</summary>
public string Factor_Pow(ulong x){ulong y=x;
	List<ulong> su4=new List<ulong>();//用作被除的素数
	List<ulong> ao=new List<ulong>();
	ulong[,]exp=new ulong[0,0];string daan="";
	if(x==0 || x==1)
		return $"{x}";
	else{
		for(ulong j=2;j<x-1;j++){
			while(y%j==0){
				su4.Add(j);
				y/=j;
				if(y==1)break;
	}	}	}
	for(int r=0;r<su4.Count;r++){
		if(r==0){
			ao.Add(su4[r]);
		}else{
			if(su4[r]!=su4[r-1])ao.Add(su4[r]);
			else continue;
	}	}
	exp=new ulong[ao.Count,2];
	for(int w=0,t=0;w<su4.Count;w++){
		if(w==0){
			exp[w,0]=ao[w];exp[w,1]=1;
		}else{
			if(su4[w]==su4[w-1])exp[t,1]++;
			else{
				t++;exp[t,0]=su4[w];exp[t,1]++;
	}	}	}
	for(int u=0;u<ao.Count;u++){
		if(u==0)daan+=string.Format("{0}{1}",exp[u,0],new StriTo().StrToSuperscript($"{exp[u,1]}"));
		else daan+=string.Format("\xd7{0}{1}",exp[u,0],new StriTo().StrToSuperscript($"{exp[u,1]}"));
	}
	return daan;
}

不用乘方型,就没有expao,直接su4循环加就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值