社区讨论
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 条回复,欢迎继续交流。
正在加载回复...