问题描述
任何大于\(1\)的正整数都能唯一分解为有限个质数的乘积:
\(N=p_1^{c_1}p_2^{c_2}...p_k^{c_k}\)
其中\(p_1,p_2,\dots,p_k\)从小到大排列
输入数据
一个数\(n(n \le 10^{17})\)
输出数据
将其质因数与其次数顺序输出
具体格式见样例
输入样例1
84
输出样例1
2^2
3^1
7^1
注意
注意数据范围与变量的上限
AC code
#include<bits/stdc++.h>
using namespace std;
unsigned long long n;
int main(){
cin>>n;
for(unsigned long long i=2;i*i<=n;i++){
int cnt=0;
if(n%i==0){
cout<<i<<"^";
while(n%i==0){
n/=i;
cnt++;
}cout<<cnt<<endl;
}
}if(n>1)
cout<<n<<"^1";
return 0;
}
标签:输出,定理,样例,unsigned,long,分解,模板
From: https://www.cnblogs.com/liudagou/p/17542011.html