【模板】质因数分解
对于 N 的质因数分解,直接从 2 开始遍历到 \(\sqrt n\) 即可,最后如果 N>1,则多计入一个因子即可。
代码如下
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5;
int n,p[maxn],num[maxn],cnt;
int main(){
int T=0;
while(scanf("%d",&n)&&n>=0){
if(T)puts("");
cnt=0;
for(int i=2;i<=sqrt(n);i++){
if(n%i!=0)continue;
p[++cnt]=i,num[cnt]=0;
while(n%i==0)n/=i,++num[cnt];
}
if(n>1)p[++cnt]=n,num[cnt]=1;
printf("Case %d.\n",++T);
for(int i=1;i<=cnt;i++)printf("%d %d ",p[i],num[i]);
puts("");
}
return 0;
}