社区讨论

Q条

B3871[GESP202309 五级] 因数分解参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m6nok8zl
此快照首次捕获于
2025/02/02 21:51
去年
此快照最后确认于
2025/11/04 10:04
4 个月前
查看原帖
rt,紫色一片
CPP
#define ll long long int
#include "bits/stdc++.h"
using namespace std;
long long int a[500000],b[5000],cnt=1;
long long x(long long y){
	for(ll i=2;i<=sqrt(y);i++){
		if(y%i==0)return i;
	}
	return y;
}
int main(){
	long long n;
	cin>>n;
	while(n!=1){
		ll sum=x(n);
		a[sum]++;
		if(b[cnt-1]!=sum){
			b[cnt]=sum;
			cnt++;
		}
		n/=sum;
	}
	sort(b+1,b+cnt);
	cnt--;
	for(ll i=1;i<=cnt;i++){
		if(a[b[i]]>=2)cout<<b[i]<<'^'<<a[b[i]];
		else cout<<b[i];
		if(i!=cnt){
			cout<<" * ";
		}
	}
   return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...